This patch is adding the functions and variables needed for workspace
pager preferences.
An option to enable/disable the workspace pager, and one to set a
default background image.

---
 WindowMaker/Defaults/WindowMaker.in |  1 +
 src/WindowMaker.h                   |  4 ++++
 src/defaults.c                      | 27 ++++++++++++++++++++++++++-
 src/keybind.h                       |  1 +
 4 files changed, 32 insertions(+), 1 deletion(-)

diff --git a/WindowMaker/Defaults/WindowMaker.in
b/WindowMaker/Defaults/WindowMaker.in
index 5b6203b..c68feef 100644
--- a/WindowMaker/Defaults/WindowMaker.in
+++ b/WindowMaker/Defaults/WindowMaker.in
@@ -3,6 +3,7 @@
   PopupSwitchMenu = NO;
   MenuStyle = normal;
   DisableMiniwindows = NO;
+  DisableWorkspacePager = NO;
   OpenTransientOnOwnerWorkspace = NO;
   EdgeResistance = 30;
   WorkspaceBorderSize = 0;
diff --git a/src/WindowMaker.h b/src/WindowMaker.h
index 0663b54..43dc83e 100644
--- a/src/WindowMaker.h
+++ b/src/WindowMaker.h
@@ -393,6 +393,8 @@ extern struct WPreferences {
  char sticky_icons;                 /* If miniwindows will be onmipresent */
  char dont_confirm_kill;            /* do not confirm Kill application */
  char disable_miniwindows;
+        char disable_workspace_pager;
+
  char dont_blink;                   /* do not blink icon selection */

  /* Appearance options */
@@ -455,6 +457,8 @@ extern struct WPreferences {
  RImage *swtileImage;
  RImage *swbackImage[9];

+        union WTexture *wsmbackTexture;
+
  int show_clip_title;

  struct {
diff --git a/src/defaults.c b/src/defaults.c
index fff239f..f0d0067 100644
--- a/src/defaults.c
+++ b/src/defaults.c
@@ -4,6 +4,8 @@
  *
  *  Copyright (c) 1997-2003 Alfredo K. Kojima
  *  Copyright (c) 1998-2003 Dan Pascu
+ *  Copyright (c) 2014 Window Maker Team
+
  *
  *  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
@@ -144,6 +146,7 @@ static WDECallbackUpdate setHightlightText;
 static WDECallbackUpdate setKeyGrab;
 static WDECallbackUpdate setDoubleClick;
 static WDECallbackUpdate setIconPosition;
+static WDECallbackUpdate setWorkspaceMapBackground;

 static WDECallbackUpdate setClipTitleFont;
 static WDECallbackUpdate setClipTitleColor;
@@ -348,7 +351,9 @@ WDefaultEntry staticOptionList[] = {
  {"ClipMergedInDock", "NO", NULL,
     NULL, getBool, setClipMergedInDock, NULL, NULL},
  {"DisableMiniwindows", "NO", NULL,
-    &wPreferences.disable_miniwindows, getBool, NULL, NULL, NULL}
+            &wPreferences.disable_miniwindows, getBool, NULL, NULL, NULL},
+        {"DisableWorkspacePager", "NO", NULL,
+            &wPreferences.disable_workspace_pager, getBool, NULL, NULL, NULL}
 };

 #define NUM2STRING_(x) #x
@@ -598,6 +603,8 @@ WDefaultEntry optionList[] = {
     NULL, getColor, setFrameFocusedBorderColor, NULL, NULL},
  {"FrameSelectedBorderColor", "white", NULL,
     NULL, getColor, setFrameSelectedBorderColor, NULL, NULL},
+        {"WorkspaceMapBack", "(solid, black)", NULL,
+            NULL, getTexture, setWorkspaceMapBackground, NULL, NULL},

  /* keybindings */

@@ -659,6 +666,8 @@ WDefaultEntry optionList[] = {
     NULL, getKeybind, setKeyGrab, NULL, NULL},
  {"SelectKey", "None", (void *)WKBD_SELECT,
     NULL, getKeybind, setKeyGrab, NULL, NULL},
+        {"WorkspaceMapKey", "None", (void *)WKBD_WORKSPACEMAP,
+            NULL, getKeybind, setKeyGrab, NULL, NULL},
  {"FocusNextKey", "None", (void *)WKBD_FOCUSNEXT,
     NULL, getKeybind, setKeyGrab, NULL, NULL},
  {"FocusPrevKey", "None", (void *)WKBD_FOCUSPREV,
@@ -3242,6 +3251,22 @@ static int updateUsableArea(WScreen * scr,
WDefaultEntry * entry, void *bar, voi
  return 0;
 }

+static int setWorkspaceMapBackground(WScreen *scr, WDefaultEntry
*entry, void *tdata, void *foo)
+{
+       WTexture **texture = tdata;
+
+       /* Parameter not used, but tell the compiler that it is ok */
+       (void) entry;
+       (void) foo;
+
+       if (wPreferences.wsmbackTexture) {
+               wTextureDestroy(scr, wPreferences.wsmbackTexture);
+       }
+       wPreferences.wsmbackTexture = *texture;
+
+       return REFRESH_WINDOW_TEXTURES;
+}
+
 static int setMenuStyle(WScreen * scr, WDefaultEntry * entry, void
*tdata, void *foo)
 {
  /* Parameter not used, but tell the compiler that it is ok */
diff --git a/src/keybind.h b/src/keybind.h
index 4aaadd4..87a5cdc 100644
--- a/src/keybind.h
+++ b/src/keybind.h
@@ -69,6 +69,7 @@ enum {
  WKBD_RAISELOWER,
  WKBD_MOVERESIZE,
  WKBD_SHADE,
+ WKBD_WORKSPACEMAP,
  WKBD_FOCUSNEXT,
  WKBD_FOCUSPREV,
  WKBD_GROUPNEXT,
-- 
2.1.0

Attachment: 0003-wmaker-add-workspace-pager-underlying-configuration.patch
Description: Binary data

Reply via email to