1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-19 20:38:08 +01:00

- replaced VirtualEdgeThickness option with EnableVirtualDesktop (boolean)

- some code cleanups in the virtual desktop.
This commit is contained in:
dan
2004-10-24 22:45:06 +00:00
parent 8bf6071c48
commit e3c67d55de
8 changed files with 21 additions and 44 deletions

View File

@@ -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:

View File

@@ -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;

View File

@@ -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;

View File

@@ -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

View File

@@ -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

View File

@@ -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);
}

View File

@@ -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);
}
}

View File

@@ -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);