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:
@@ -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:
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user