From 4beb6b99b7cd5a8088a2607080ebdeb7333afb9c Mon Sep 17 00:00:00 2001 From: "Michael D. Lowis" Date: Thu, 23 May 2019 23:11:11 -0400 Subject: [PATCH] removed even more stuff --- CHANGELOG | 526 ----------------------------------------------- Makefile | 2 +- TODO | 4 - events.c | 40 +--- manage.c | 108 ---------- screenshot.png | Bin 12438 -> 0 bytes windowlab.1x | 86 -------- windowlab.h | 28 +-- windowlab.menurc | 14 -- 9 files changed, 8 insertions(+), 800 deletions(-) delete mode 100644 CHANGELOG delete mode 100644 TODO delete mode 100644 manage.c delete mode 100644 screenshot.png delete mode 100644 windowlab.1x delete mode 100644 windowlab.menurc diff --git a/CHANGELOG b/CHANGELOG deleted file mode 100644 index 581c5e2..0000000 --- a/CHANGELOG +++ /dev/null @@ -1,526 +0,0 @@ -1.40 (2010-04-04) - -* integrated a change from Simon Engelsman (thanks!): - * XNextEvent() was replaced by interruptible_XNextEvent() function in do_event_loop() - - -1.39 (2009-12-27) - -* integrated more changes from Mats Erik Andersson: - * menu file handling made more lenient - - -1.38 (2009-11-14) - -* integrated more changes from Mats Erik Andersson: - * makefile made more flexible - * signal handler for SIGHUP now just sets a semaphore, and reloading of menu resources happens in the event loop - * fixed problems found by auditing the code with Flawfinder - - -1.37 (2009-10-04) - -* integrated a change from Campbell Barton (thanks!): - * fixed a bug which was freeing clients' names twice - - -1.36 (2009-10-01) - -* rewrote the inherited licences part of the readme file to take into account 9wm's switch to the MIT licence -* updated the menu options -* integrated more changes from Mats Erik Andersson: - * added a simple mechanism which updates the menu in the running instance of WindowLab - - -1.35 (2009-09-20) - -* integrated changes from Mats Erik Andersson (thanks!): - * fixed a bug that could cause processes to become zombified - * fixed a bug that made some windows unviewable - - -1.34 (2006-11-12) - -* if no window has focus, focus is given to new windows -* if the focused window is closed and no previous window has ever had focus, focus is given to the first client -* integrated changes from Jeffrey Drake (thanks!): - * fonts now closed properly on exit -* integrated more changes from Antti Nykänen: - * fixed a compiler warning -* integrated more changes from David Lawrence Ramsey: - * fixed a compiler warning - * changes to the Makefile - * many other misc changes! - - -1.33 (2005-10-16) - -* integrated changes from Dushkin (thanks!): - * scrolling the mouse wheel in the taskbar now task switches -* integrated changes from Antti Nykänen (thanks!): - * fixed a crash that occurred on the BSDs (and presumably on other systems without /proc/self/exe) -* integrated changes from Gregor Imboden (thanks!): - * fixed a crash that ocurrred when there are no focused windows and alt + F12 is pressed was fixed -* events are always replayed rather than sometimes being eaten -* new windows are no longer given focus -* added TODO file - - -1.32 (2005-07-20) - -* the executable has been made relocatable -* double clicking on a windows titlebar toggles its depth (based on code from Roland Haas) -* integrated changes from Mike M. Volokhov (thanks!): - * a segfault when using realloc() with menu items was fixed -* integrated more changes from Roland Haas: - * fixed bug with applications that start in iconic mode - * -display option added - * the initial position and size hints in WM_HINTS are now ignored since they are flagged as obsolete in the manpage of SetWMHints - - -1.31 (2005-06-21) - -* more resizing bugs were fixed -* integrated changes from Roland Haas (thanks!): - * window borders are now taken into account properly when resizing - * bugs with XFT fonts when resizing were fixed - - -1.30 (2005-05-23) - -* a bug that prevented windows from being made smaller from a side that was at the edge of the screen was fixed -* a bug that caused the first clients taskbar button to disappear when all clients were hidden was fixed - - -1.29 (2005-05-18) - -* integrated more changes from David Lawrence Ramsey: - * a segfault that occurred when removing clients was fixed - * some cosmetic code changes were made - - -1.28 (2005-05-15) - -* when the focused window is closed or hidden, focus is returned to the previous window -* fixed serious problem with using a modifier key for resizing that occurred on some systems -* changed resizing to use alt instead of the Windows key -* fixed bug when using alt-tab/alt-q to switch focus to a hidden window -* changed default fontname to work with Xorg - - -1.27 (2005-04-16) - -* hidden windows are now shown and re-hidden when their taskbar button is dragged over - - -1.26 (2005-02-23) - -* integrated more changes from David Lawrence Ramsey: - * various improvements to the makefile were made - * a bug with vertically resizing windows that use size increments was fixed - * a few cosmetic cleanups to various sections of code were made - - -1.25 (2004-12-23) - -* integrated changes from Matt Borkowski (thanks!): - * some Z ordering bugs were fixed -* integrated more changes from David Lawrence Ramsey: - * click-to-focus was made to work on fullscreen windows that have lost focus - * size changes are applied to the original non-fullscreen coordinates of fullscreen windows - * all of the function prototypes were made consistent - * windows that reconfigure themselves without changing positions no longer move - * the shortcut keys behavior changed - * some gcc 3.3.x warnings were fixed (ported from aewm) - * the switch statement in handle_property_change() is no longer missing a break (ported from aewm) - * send_xmessage() now uses an XClientMessageEvent instead of a generic XEvent (ported from aewm) - - -1.24 (2004-05-29) - -* holding down the Windows key on it's own now brings the current window to the front, after which dragging against the window's edge with any mouse button depressed resizes it -* integrated more changes from David Lawrence Ramsey: - * a few prototypes/declarations were fixed - - -1.23 (2004-03-12) - -* resizing now optionally uses a modifier key -* a very serious bug in the resizing system was fixed -* the button graphics were altered -* the task switching keys were changed to alt-tab/alt-q -* it's no longer possible to resize a fullscreen window -* integrated more changes from David Lawrence Ramsey: - * a bug where resized windows lost focus was fixed - * a debugging statement was added - * a compiler warning was fixed - * an unnecessary get_mouse_position() call was removed - - -1.22 (2004-02-22) - -* the middle mouse button is now used to resize the active window -* the resize button has become a hide button -* a bug when making windows smaller was fixed -* alt-F9/F10 now raises the window as well as changing focus - - -1.21 (2004-01-17) - -* the 8½ style of window reshaping was dropped in favour of a completely new mechanism that allows users to change one or many different edges of the window independantly in one action -* small bug fix in window titlebar drawing -* integrated changes from Guido Schimmels (thanks!): - * a bitmap font is no longer referenced if an XFT font is used -* integrated more changes from David Lawrence Ramsey: - * the code was changed to use NULL explicitely - * draw_redraw_button() was renamed as draw_resize_button() - * warnings fixed when compiling using gccs -pedantic option - - -1.20 (2003-12-31) - -* altered the button graphics and changed the default active window colour -* removed the borderwidth command line option -* integrated more changes from David Lawrence Ramsey: - * made fullscreen mode respect window size increment hints as well as maximum size hints - * clicking the right mouse button between between clicking the resize button and starting the window drag cancels resize mode - - -1.19 (2003-11-14) - -* users can now click and drag the mouse pointer over the taskbar to quickly find different windows -* fixed bug where a menu item would not be lauched unless the cursor was moved -* corrected amount that taskbar items text are indented to match that of windows titlebars - - -1.18 (2003-11-03) - -* small bug fix in window titlebar drawing - - -1.17 (2003-11-01) - -* images added to windows titlebar buttons -* quit option added to the sample menu file - - -1.16 (2003-10-04) - -* integrated more changes from David Lawrence Ramsey: - * ConfigureRequest handler modified so that refix_position() is called before gravity ids reapplied (this allows refix_position() to be much simpler) - * resize increments of zero are now handled properly - * some changes to the minimum size #defines - - -1.15 (2003-08-17) - -* integrated more changes from David Lawrence Ramsey: - * it now compiles with Xft support (it previously referenced detail_col instead of text_col in main.c) - * extra logic added to refix_position() to keep windows from overlapping the taskbar - - -1.14 (2003-08-17) - -* fullscreen mode now reserves space at the top of the screen for the taskbar/menubar which is only displayed when the mouse is over it (for users who want to watch fullscreen video without the wm showing) -* created a new colour to cover the screen when a window in fullscreen mode is too small to fill the screen and reintroduced a separate colour for the text -* rewrote refix_postion() to use fix_position() -* reduced the height of the taskbar - it was previously BORDERWIDTH taller than the windows titlebars -* WindowLab now reallocs memory unused by the menu options - - -1.13 (2003-08-09) - -* depressed button colour is now derived from the active titlebar colour -* removed redundant command line arguments and made the rest less cryptic -* clients that cannot be made as big as the screen are now centred when put into fullscreen mode -* Makefile now prompts the user before overwriting an existing menurc file -* integrated more changes from David Lawrence Ramsey: - * fullscreen_client now set to NULL in send_wm_delete() - * made a few minor cleanups - - -1.12 (2003-07-20) - -* cycle_previous() and cycle_next() greatly simplified -* unhide() function added -* hidden windows are now listed in the taskbar, and clicking their buttons will unhide them -* RATIONALE file added to explain the reasoning behind some of WindowLabs features -* integrated more changes from David Lawrence Ramsey: - * code added to keep windows (eg Mozilla and Mozilla Firebird) from raising themselves - * modified refix_position() to handle maximized (decorless) windows properly - * fixed a bug in the manpage where the description of the keybindings is all fused into one paragraph - * made a few minor cleanups - - -1.11 (2003-07-05) - -* fixed fullscreenmode so that no border is shown on screen -* setsid() is now called in fork_exec() to prevent child processes from dying when WindowLab is killed or crashes -* support added for toggling window depth and cycling between next and previous windows using the keyboard - - -1.10 (2003-05-25) - -* added code to toggle fullscreen mode on non transient windows when the user hits F11 -* tidied up some more code - - -1.9 (2003-04-19) - -* made new windows appear fully on screen instead of just their titlebar -* added code to destroy the constraint window if it can't be grabbed (found by Pierre-Paul Lavoie) -* removed unnecessary unmapping of windows before they were destroyed (found by Pierre-Paul Lavoie) -* integrated changes from Pierre-Paul Lavoie (thaks ppl!): - * the menurc path is now specified by a -D option on the compile line in the makefile instead of being a #define in the code -* integrated more changes from David Lawrence Ramsey: - * significant changes made to the ConfigureRequest event handler with the addition of refix_position() - * crash in dump_clients() in DEBUG mode fixed - - -1.8 (2003-03-30) - -* integrated more changes from David Lawrence Ramsey: - * the makefile now uses pkg-config (which XFree86 4.3.0 should include an entry for) to get the library and include directory information needed to compile properly (ported from aewm) - * menufile.c changed to use XftTextExtents8() to get the proper width of text when Xft is used - - -1.7 (2003-03-30) - -* added title bar to the reshape window -* small improvements made to manage.c - - -1.6 (2003-03-15) - -* added visual hint when a button is depressed -* integrated changes from David Lawrence Ramsey (thanks!): - * some focussing problems fixed - * GTK resizing bug handled - * iconified windows now handled properly - * misc small fixes - - -1.5 (2003-02-27) - -* gave menu its own colours -* many changes and fixes, especially to sweep() and helper functions in manage.c - - -1.4 (2003-02-18) - -* added menu system - this should be the last fundamental change to functionality - - -1.3 (2003-02-10) - -* fixed crash caused if the taskbar is clicked and no clients are present (found by lanzz) -* changed resizing to use a window rather than inverting the background -* many misc bug fixes -* fixed a problem with xft/freetype (found by Michael Haller) - - -1.2 (2003-01-23) - -* new client window positioning algorithm altered so that it's more obvious to the user -* small bug in find_client fixed - - -1.1 (2003-01-12) - -* some refactoring in events.c -* added some missing event handling for the taskbar window (found by Pierre-Paul Lavoie) -* made taskbar window update when a client window changes its title - - -1.0 (2002-12-26) - -* first public release - - - -*** ORIGINAL AEWM CHANGELOG *** - -1.1.2: - - * Rewrote init_position again. This fixes the problem with specifying a USPosition containing 0. - * Added gtk-menu client contributed by Adam Sampson . I want to fold this stuff into the rest of the goodies eventually. For now, just keep in mind that the extensions to .paletterc may change. - * Added a "-version" option for printing version information from the command line. - * Added some proper headers to all the files in goodies/lib/. - * Replaced strcpy/strcat in panel-misc.c with snprintf to prevent a possible buffer overflow. - * Made some improvements to the .paletterc parser: squish a possible segfault, handle comments/blank lines, ignore menu directives. - * Reformatted man pages. - -1.1.1: - - * Fix typo in man page install location. - * Use -lXt when compiling Xaw goodies (required to build on SunOS). - * Added some more documentation (mostly about things that are likely to break.) - -1.1.0: - - * Xft (freetype extension) support, thanks once again to help from Adam Sampson . - * A few Makefile improvements: only link against required libraries, easier enabling/disabling of options, don't attempt to compile against headers in the binary destination tree. - * Yet more init_position tweaks -- use x position hint even if y is out of range and vice versa, and take window gravity into account when positioning. - * Some additions and improvements to the debug code (mainly printing names of constants instead of cryptic numbers). - -1.0.3: - - * Backport new init_position, -version option, new man pages, and panel-misc.c crasher/overflow fixes. - -1.0.2: - - * Backport -lXt fix and new documentation. - -1.0.1: - - * Fix remove_client so that it compiles with -DDEBUG turned on. - -1.0.0: - - * All right, I think we're stable now. New stuff will go into 1.1.x. - * Changed init_position so that it doesn't cut off very large windows. This was merely annoying for regular windows, but it was downright buggy for incsized ones. - * Fixed compilation bug when shape support was disabled. - -0.9.19: - - * OK, I broke command line parsing again. Yes, I'm an idiot. - * Fixed problem with exec()-ing a non-existent program. - -0.9.18: - - * Fixed bug in init_position; we can safely use PPosition now. If windows start popping up in bad places, check their size hints before yelling at me. - * Use fork/exec instead of system(3) to run programs. Fixed signal handlers to reflect this (we need POSIX sigaction(2)). - * Cleaned up MWM hints/WM_SIZE hints code (they sort of match now), and only request the MWM atom at startup instead of for each call. - * Started yet another goodies reorganization, and ended up reverting a lot of it. However what's changed should go a little ways towards cleaning things up. - * Fix a build error where some goodies files that needed to be compiled against X were compiled without -I/use/X11R6/lib, failing on systems without a symlink from /usr/include/X11. - * Tossed out historical 'iheight' junk in border calculation. - -0.9.17: - - * Use ln -f to ignore overwriting previously installed manpage links. - * If MWM hints are enabled, no-border windows will no longer get a border upon exiting. - * The order of buttons in *-palette is no longer changed by title updates or unhiding windows. - * xaw-palette was fixed to work with proper versions of Xaw (shame on me for testing with Xaw3d!), including the one in XF4. The new internals have ported over to gtk-palette. - -0.9.16: - - * Fixed a shaping bug (which actually existed before changes made in 0.9.15) where a window that used to be shaped, but then became unshaped, wasn't updated properly. - * MWM hints support can now be compiled in with -DMWM_HINTS, thanks to help from Adam Sampson . - * Set the input focus upon entering a window frame, instead of on entering the child window. - -0.9.15: - - * Display a titlebar for shaped windows. This also makes the bug where shaped windows were getting gravitated as if they had a titlebar irrelevant. - * Tiny cleanups for the Debian package, including: - * Man page for the goodies. - * Typo in makefile fixed (tried to strip manpage, ah-reer-reer-reer). - * Polished the main man page a bit. - -0.9.14: - - * Free cursors and GCs in quit_nicely. - * Switch order of objects and libraries in Makefile to placate Solaris cc. - * Rename raise to raise_win -- raise is in signal.h of course (duh!) - * Added copyright notice to all goodies and Makefiles due to someone ignoring my license (this has been worked out). - * Bail out on lack of default font. You *should* be reading aewm.h first of course ;-) - -0.9.13: - - * Fix really stupid thing I did while refactoring make_new_client, where a window that started as Withdrawn would stay that way instead of getting mapped. - * Deal with withdrawing clients properly in *-palette, by watching for the WM_STATE property to be changed instead of looking at UnmapNotify events. - -0.9.12: - - * Clean up clients on receipt of a DestroyNotify. This is needed when a client is already unmapped (i.e, the user iconified it) and it exits. - * Preserve window stacking order on exit and restart. - * Mucked about with the make_new_client logic; tell me if this breaks something. - * Added gtk-*-menu clients contributed by Adam Sampson . - -0.9.11: - - * Got rid of unneeded PropertyChangeMask on root window. Silly me. - * Removed the ugly array/linked-list hack from xaw-palette, so that the internal workings of both palette clients are now basically identical. - * static'd everything that should have been static. - * Updated email, documentation, etc. - * Got rid of handle_reparent_event, as a client call to XReparentWindow is taken care of by handle_unmap_event. - * Backed out the 0.9.9 change to option-parsing macros, which were causing all options to fail miserably (argh). - -0.9.10: - - * Handle withdrawing windows properly in xaw-palette. Both palette clients are a little saner now. - * Updated goodies docs. - * ungravitate when printing geometry for move/resize. - * Moved more code from individual goodies to common-run.c. - * Got rid of unhide() as we never use it. - * Replaced GenericWidget typedef silliness with global variables. sometimes you just have to pick the lesser of two evils... - -0.9.9: - - * Finally de-insanified handle_xerror. Instead of going through contortions in remove_client to avoid raising errors, we turn the error handler off during the server grab. - * Both palette goodies now track iconification of clients and WM_NAME changes. - * gtk-palette is now oriented horizontally, and includes a menu, providing lots more space for client buttons. - * Made the parse_option macros reusable (thanks to the comp.lang.c folks for the reminder). - * make sure get_wm_name in the goodies doesn't crash for windows that have no name. - * Minor typo corrections and stuff. - -0.9.8: - - * Brown paper bag: take debugging stupidity out of gtk-palette. - * Overhaul the goodies' build system yet again. - * Gtk-palette now gets the screen size correctly. - * All switch/palette goodies now cut off long titles, use WM_NAME instead of WM_ICON_NAME, and place iconified titles in parenthesis. - * No changes to aewm itself in this release. - -0.9.7: - - * Added lots of comments. - * General code cleanups, tweaks, reformats all over. - * Fixed iconic state problem. - * Plugged a memory leak in send_wm_delete. - * Added -new3. - * Fixed -new[123] allocation bug. - * Made debug code considerably saner. - * Print "80x25" and such when resizing xterms. - * Replaced sprintf with snprintf. - * Got rid of -display. set DISPLAY in your environment instead, so that it propagates to child processes. - * Messed around with the goodies' build system. - * Fixed gtk-palette; events are now filtered properly at the GDK level. - * Replaced variable length arrays with malloc/free. - * Added xsession, since I've been using it forever. - -0.9.6: - - * Fix for handling inital window geometry. - * A few memory leaks plugged. - * Wrote a man page - * More consistent borders for transient windows. - -0.9.5: - - * Print window geometry while moving/resizing. - * Added some WM_NORMAL_HINTS sanity checks - * Set the keyboard focus on window enter (for rxvt, etc). - -0.9.4: - - * Root menu replaced by another client. - * Added -bw option. - * Border-drawing fixes (only visible if you have very wide borders). - * Got rid of mouse button exit. - -0.9.3: - - * Put the root menu code back in. - * Added more goodies and reorganized them. - -0.9.2: - - * Minor ICCCM compliance fix regarding WM_STATE. - -0.9.1: - - * A small fix to make the palette complain if no rc file exists. - -0.9: - - * Initial public release. Before this, aewm was called 'swim' and was used by me as a school project. It was also rather unstable. \ No newline at end of file diff --git a/Makefile b/Makefile index 8eca540..c6c657a 100644 --- a/Makefile +++ b/Makefile @@ -28,7 +28,7 @@ LDPATH = -L$(XROOT)/lib LIBS = -lX11 -lXft PROG = windowlab -OBJS = main.o events.o client.o new.o manage.o misc.o +OBJS = main.o events.o client.o new.o misc.o HEADERS = windowlab.h all: $(PROG) diff --git a/TODO b/TODO deleted file mode 100644 index c8fc3d3..0000000 --- a/TODO +++ /dev/null @@ -1,4 +0,0 @@ -TODO - -* add EWMH support (back port it from aewm?) -* allow right clicks on client windows to show WindowLab's menubar as well as being passed to the client diff --git a/events.c b/events.c index a1f4b19..8e62837 100644 --- a/events.c +++ b/events.c @@ -99,7 +99,6 @@ static void handle_button_press(XButtonEvent *e) static void handle_windowbar_click(XButtonEvent *e, Client *c) { - move(c); } /* Because we are redirecting the root window, we get ConfigureRequest @@ -229,27 +228,6 @@ static void handle_client_message(XClientMessageEvent *e) static void handle_property_change(XPropertyEvent *e) { - Client *c = find_client(e->window, WINDOW); - long dummy; - - if (c != NULL) - { - switch (e->atom) - { - case XA_WM_NAME: - if (c->name) - { - XFree(c->name); - c->name = NULL; - } - XFetchName(dsply, c->window, &c->name); - redraw(c); - break; - case XA_WM_NORMAL_HINTS: - XGetWMNormalHints(dsply, c->window, c->size, &dummy); - break; - } - } } /* X's default focus policy is follows-mouse, but we have to set it @@ -264,13 +242,9 @@ static void handle_property_change(XPropertyEvent *e) static void handle_enter_event(XCrossingEvent *e) { - Client *c = NULL; - - c = find_client(e->window, FRAME); - if (c != NULL) - { - XGrabButton(dsply, AnyButton, AnyModifier, c->frame, False, ButtonMask, GrabModeSync, GrabModeSync, None, None); - } + Client* c = find_client(e->window, FRAME); + if (c != NULL) + XGrabButton(dsply, AnyButton, AnyModifier, c->frame, False, ButtonMask, GrabModeSync, GrabModeSync, None, None); } /* If we were covered by multiple windows, we will usually get @@ -279,10 +253,8 @@ static void handle_enter_event(XCrossingEvent *e) static void handle_expose_event(XExposeEvent *e) { - Client *c = find_client(e->window, FRAME); - if (c != NULL && e->count == 0) - { - redraw(c); - } + Client *c = find_client(e->window, FRAME); + if (c != NULL && e->count == 0) + redraw(c); } diff --git a/manage.c b/manage.c deleted file mode 100644 index 78cf822..0000000 --- a/manage.c +++ /dev/null @@ -1,108 +0,0 @@ -/* WindowLab - an X11 window manager - * Copyright (c) 2001-2010 Nick Gravgaard - * me at nickgravgaard.com - * http://nickgravgaard.com/windowlab/ - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "windowlab.h" - -/* The name of this function is a bit misleading: if the client - * doesn't listen to WM_DELETE then we just terminate it with extreme - * prejudice. */ - -void send_wm_delete(Client *c) -{ - int i, n, found = 0; - Atom *protocols; - - if (XGetWMProtocols(dsply, c->window, &protocols, &n)) - { - for (i = 0; i < n; i++) - { - if (protocols[i] == wm_delete) - { - found++; - } - } - XFree(protocols); - } - if (found) - { - send_xmessage(c->window, wm_protos, wm_delete); - } - else - { - XKillClient(dsply, c->window); - } -} - -void move(Client *c) -{ - XEvent ev; - int old_cx = c->x; - int old_cy = c->y; - int mousex, mousey, dw, dh; - Client *exposed_c; - Rect bounddims; - Window constraint_win; - XSetWindowAttributes pattr; - - dw = DisplayWidth(dsply, screen); - dh = DisplayHeight(dsply, screen); - get_mouse_position(&mousex, &mousey); - - bounddims.x = (mousex - c->x) - BORDERWIDTH(c); - bounddims.width = (dw - bounddims.x - (c->width - bounddims.x)) + 1; - bounddims.y = mousey - c->y; - bounddims.height = (dh - bounddims.y - (c->height - bounddims.y)) + 1; - bounddims.y += BARHEIGHT() - BORDERWIDTH(c); - bounddims.height += c->height - (BARHEIGHT() - DEF_BORDERWIDTH); - - constraint_win = XCreateWindow(dsply, root, bounddims.x, bounddims.y, bounddims.width, bounddims.height, 0, CopyFromParent, InputOnly, CopyFromParent, 0, &pattr); - XMapWindow(dsply, constraint_win); - - if (!(XGrabPointer(dsply, root, False, MouseMask, GrabModeAsync, GrabModeAsync, constraint_win, None, CurrentTime) == GrabSuccess)) - { - XDestroyWindow(dsply, constraint_win); - return; - } - - do - { - XMaskEvent(dsply, ExposureMask|MouseMask, &ev); - switch (ev.type) - { - case Expose: - exposed_c = find_client(ev.xexpose.window, FRAME); - if (exposed_c != NULL) - { - redraw(exposed_c); - } - break; - case MotionNotify: - c->x = old_cx + (ev.xmotion.x - mousex); - c->y = old_cy + (ev.xmotion.y - mousey); - XMoveWindow(dsply, c->frame, c->x, c->y - BARHEIGHT()); - send_config(c); - break; - } - } - while (ev.type != ButtonRelease); - - ungrab(); - XDestroyWindow(dsply, constraint_win); -} diff --git a/screenshot.png b/screenshot.png deleted file mode 100644 index 9782f0f9feaf3165295f47324794526e7ce2d395..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12438 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 -#define raise_win(c) ((void) XRaiseWindow(dsply, (c)->frame)) - // border width accessor to handle hints/no hints #define BORDERWIDTH(c) (DEF_BORDERWIDTH) @@ -185,10 +163,6 @@ extern Client *get_prev_focused(void); // new.c extern void make_new_client(Window); -// manage.c -extern void move(Client *); -extern void send_wm_delete(Client *); - // misc.c extern void err(const char *, ...); extern int handle_xerror(Display *, XErrorEvent *); diff --git a/windowlab.menurc b/windowlab.menurc deleted file mode 100644 index 4023d30..0000000 --- a/windowlab.menurc +++ /dev/null @@ -1,14 +0,0 @@ -# make sure each line ends in LF not CRLF! -xterm:xterm -gedit:gedit -Nautilus:nautilus -Firefox:firefox -Pidgin:pidgin -XChat:xchat -Rhythmbox:rhythmbox -Totem:totem -GIMP:gimp -Edit menu:gvim /etc/X11/windowlab/windowlab.menurc -About:windowlab -about | xmessage -file - -Reload:pkill -HUP windowlab -Quit:skill windowlab -- 2.54.0