From e3c67d55ded48d9287d8199cae39639870968924 Mon Sep 17 00:00:00 2001 From: dan Date: Sun, 24 Oct 2004 22:45:06 +0000 Subject: [PATCH] - replaced VirtualEdgeThickness option with EnableVirtualDesktop (boolean) - some code cleanups in the virtual desktop. --- ChangeLog | 6 +----- src/WindowMaker.h | 2 +- src/defaults.c | 8 ++++---- src/dialog.c | 6 +++--- src/menu.c | 6 +++--- src/screen.c | 5 ----- src/workspace.c | 31 +++++++++---------------------- src/workspace.h | 1 - 8 files changed, 21 insertions(+), 44 deletions(-) diff --git a/ChangeLog b/ChangeLog index 28de74e7..2b5f49b7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,11 +3,7 @@ Changes since version 0.90.0: - added _NET_WM_NAME, _NET_WM_ICON_NAME and _NET_WM_ICON to WINGs - new WPrefs icon (thanks to Largo) -- fixed virtual desktop to disable the virtual edge on the fly if thickness - is set to 0. -- fixed virtual desktop to resize the edge on the fly when edge thickness - changes. -- limit VirtualEdgeThickness to values in the 0..10 range +- replaced VirtualEdgeThickness option, with EnableVirtualDesktop (boolean) Changes since version 0.80.2: diff --git a/src/WindowMaker.h b/src/WindowMaker.h index 5d4fce2e..10a01c7a 100644 --- a/src/WindowMaker.h +++ b/src/WindowMaker.h @@ -418,7 +418,7 @@ typedef struct WPreferences { char ws_advance; /* Create new workspace and advance */ #ifdef VIRTUAL_DESKTOP - unsigned int vedge_thickness; + unsigned int vdesk_enable; unsigned int vedge_bordersize; unsigned int vedge_hscrollspeed; unsigned int vedge_vscrollspeed; diff --git a/src/defaults.c b/src/defaults.c index 0a47dbed..e5859dea 100644 --- a/src/defaults.c +++ b/src/defaults.c @@ -156,7 +156,7 @@ static int setResizebarBack(); static int setWorkspaceBack(); static int setWorkspaceSpecificBack(); #ifdef VIRTUAL_DESKTOP -static int setVirtualEdgeThickness(); +static int setVirtualDeskEnable(); #endif static int setMenuTitleColor(); static int setMenuTextColor(); @@ -438,8 +438,8 @@ WDefaultEntry optionList[] = { &wPreferences.workspace_border_size, getInt, updateUsableArea }, #ifdef VIRTUAL_DESKTOP - {"VirtualEdgeThickness", "1", NULL, - &wPreferences.vedge_thickness, getInt, setVirtualEdgeThickness + {"EnableVirtualDesktop", "NO", NULL, + &wPreferences.vdesk_enable, getBool, setVirtualDeskEnable }, {"VirtualEdgeExtendSpace", "0", NULL, &wPreferences.vedge_bordersize, getInt, NULL @@ -3361,7 +3361,7 @@ setWorkspaceBack(WScreen *scr, WDefaultEntry *entry, WMPropList *value, #ifdef VIRTUAL_DESKTOP static int -setVirtualEdgeThickness(WScreen *scr, WDefaultEntry *entry, int *value, void *dummy) +setVirtualDeskEnable(WScreen *scr, WDefaultEntry *entry, void *foo, void *bar) { wWorkspaceUpdateEdge(scr); return 0; diff --git a/src/dialog.c b/src/dialog.c index d4976a52..8d63a6fc 100644 --- a/src/dialog.c +++ b/src/dialog.c @@ -1397,10 +1397,10 @@ wShowInfoPanel(WScreen *scr) } #ifdef VIRTUAL_DESKTOP - if (wPreferences.vedge_thickness == 0) - strbuf = wstrappend(strbuf, _(", VirtualDesktop disabled")); - else + if (wPreferences.vdesk_enable) strbuf = wstrappend(strbuf, _(", VirtualDesktop enabled")); + else + strbuf = wstrappend(strbuf, _(", VirtualDesktop disabled")); #endif #ifdef XINERAMA diff --git a/src/menu.c b/src/menu.c index 600500b5..bb37dad6 100644 --- a/src/menu.c +++ b/src/menu.c @@ -1724,7 +1724,7 @@ scrollMenuCallback(void *data) #ifdef VIRTUAL_DESKTOP /* don't scroll if it is in vdesk mode */ - if (!wPreferences.vedge_thickness) + if (!wPreferences.vdesk_enable) #endif getScrollAmount(menu, &hamount, &vamount); @@ -2033,7 +2033,7 @@ menuMouseDown(WObjDescriptor *desc, XEvent *event) } #ifdef VIRTUAL_DESKTOP - if (wPreferences.vedge_thickness) { + if (wPreferences.vdesk_enable) { wWorkspaceLowerEdge(scr); } #endif @@ -2184,7 +2184,7 @@ menuMouseDown(WObjDescriptor *desc, XEvent *event) WMHandleEvent(&ev); #ifdef VIRTUAL_DESKTOP /* since expose will raise edge up.. I need another ugly hack here */ - if (wPreferences.vedge_thickness) { + if (wPreferences.vdesk_enable) { wWorkspaceLowerEdge(scr); } #endif diff --git a/src/screen.c b/src/screen.c index 85079d95..a36bcc60 100644 --- a/src/screen.c +++ b/src/screen.c @@ -1069,11 +1069,6 @@ wScreenRestoreState(WScreen *scr) wWorkspaceRestoreState(scr); -#ifdef VIRTUAL_DESKTOP - /* create inputonly windows at the border of screen */ - wWorkspaceManageEdge(scr); -#endif - wScreenUpdateUsableArea(scr); } diff --git a/src/workspace.c b/src/workspace.c index b0de8b24..aa5b79f5 100644 --- a/src/workspace.c +++ b/src/workspace.c @@ -765,7 +765,7 @@ vdMouseMoveDesktop(XEvent *event, WMPoint direction) getViewPosition(scr, scr->current_workspace, &x, &y); if (wWorkspaceSetViewport(scr, scr->current_workspace, x+step.x, y+step.y)) { - step = vec_scale(direction, wPreferences.vedge_thickness + 1); + step = vec_scale(direction, 2); XWarpPointer(dpy, None, scr->root_win, 0,0,0,0, event->xcrossing.x_root - step.x, event->xcrossing.y_root - step.y); @@ -880,10 +880,10 @@ vdHandleEnter_r(XEvent *event) { #define BOTTOM_EDGE 0x08 #define ALL_EDGES 0x0F -void -wWorkspaceManageEdge(WScreen *scr) +static void +createEdges(WScreen *scr) { - if (!scr->virtual_edges && wPreferences.vedge_thickness) { + if (!scr->virtual_edges) { int i, j, w; int vmask; XSetWindowAttributes attribs; @@ -891,7 +891,7 @@ wWorkspaceManageEdge(WScreen *scr) int heads = wXineramaHeads(scr); int *hasEdges = (int*)wmalloc(sizeof(int)*heads); - int thickness = wPreferences.vedge_thickness; + int thickness = 1; int nr_edges = 0; int max_edges = 4*heads; int head; @@ -1005,7 +1005,7 @@ wWorkspaceManageEdge(WScreen *scr) static void -destroyEdge(WScreen *scr) +destroyEdges(WScreen *scr) { if (scr->virtual_edges) { int i; @@ -1026,23 +1026,10 @@ destroyEdge(WScreen *scr) void wWorkspaceUpdateEdge(WScreen *scr) { - static int thickness = -1; - - if ((int)wPreferences.vedge_thickness < 0) - wPreferences.vedge_thickness = 0; - else if ((int)wPreferences.vedge_thickness > 10) - wPreferences.vedge_thickness = 10; - - if (wPreferences.vedge_thickness == thickness) - return; - - thickness = wPreferences.vedge_thickness; - - if (wPreferences.vedge_thickness) { - destroyEdge(scr); - wWorkspaceManageEdge(scr); + if (wPreferences.vdesk_enable) { + createEdges(scr); } else { - destroyEdge(scr); + destroyEdges(scr); } } diff --git a/src/workspace.h b/src/workspace.h index eac84af1..440c0881 100644 --- a/src/workspace.h +++ b/src/workspace.h @@ -40,7 +40,6 @@ Bool wWorkspaceDelete(WScreen *scr, int workspace); void wWorkspaceChange(WScreen *scr, int workspace); void wWorkspaceForceChange(WScreen *scr, int workspace); #ifdef VIRTUAL_DESKTOP -void wWorkspaceManageEdge(WScreen *scr); void wWorkspaceUpdateEdge(WScreen *scr); void wWorkspaceRaiseEdge(WScreen *scr); void wWorkspaceLowerEdge(WScreen *scr); -- 2.11.4.GIT