This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project wmaker-crm.git.

The branch, next has been updated
       via  c82138eab959bc4f73b5c49de209188aab25b2a0 (commit)
      from  077a2eaa71623421eaffc234c30e6d40a52f0220 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://repo.or.cz/w/wmaker-crm.git/commit/c82138eab959bc4f73b5c49de209188aab25b2a0

commit c82138eab959bc4f73b5c49de209188aab25b2a0
Author: Haroldo Santos <[email protected]>
Date:   Thu Feb 17 14:56:36 2011 -0200

    switchpanel: Add skip_switchpanel advanced option
    
    Some applications running in my machine are only background
    windows, e.g.: screenlets showing CPU usage.
    
    In current wmaker version all these applications pollute my
    switchpanel, so I wrote this patch (thanks Carlos for the helping me).
    
    It includes an additional advanced option for windows "Do not
    include in switchpanel" which, if set, allows applications to
    not appear in the switchpanel.
    
    Signed-off-by: Haroldo Santos <[email protected]>

diff --git a/src/switchpanel.c b/src/switchpanel.c
index 38a8029..3836991 100644
--- a/src/switchpanel.c
+++ b/src/switchpanel.c
@@ -392,6 +392,8 @@ static WMArray *makeWindowListArray(WWindow *curwin, int 
include_unmapped, Bool
                                    if (strcmp(wwin->wm_class, 
curwin->wm_class))
                                        continue;
                                }
+
+                               if (!WFLAGP(wwin, skip_switchpanel))
                                WMAddToArray(windows, wwin);
                        }
                }
@@ -409,6 +411,8 @@ static WMArray *makeWindowListArray(WWindow *curwin, int 
include_unmapped, Bool
                                    if (strcmp(wwin->wm_class, 
curwin->wm_class))
                                        continue;
                                }
+
+                               if (!WFLAGP(wwin, skip_switchpanel))
                                WMAddToArray(windows, wwin);
                        }
                }
diff --git a/src/wdefaults.c b/src/wdefaults.c
index e264430..26c6a26 100644
--- a/src/wdefaults.c
+++ b/src/wdefaults.c
@@ -64,6 +64,7 @@ static WMPropList *AKeepOnTop;
 static WMPropList *AKeepOnBottom;
 static WMPropList *AOmnipresent;
 static WMPropList *ASkipWindowList;
+static WMPropList *ASkipSwitchPanel;
 static WMPropList *AKeepInsideScreen;
 static WMPropList *AUnfocusable;
 static WMPropList *AAlwaysUserIcon;
@@ -100,6 +101,7 @@ static void init_wdefaults(WScreen * scr)
        AKeepOnBottom = WMCreatePLString("KeepOnBottom");
        AOmnipresent = WMCreatePLString("Omnipresent");
        ASkipWindowList = WMCreatePLString("SkipWindowList");
+       ASkipSwitchPanel = WMCreatePLString("SkipSwitchPanel");
        AKeepInsideScreen = WMCreatePLString("KeepInsideScreen");
        AUnfocusable = WMCreatePLString("Unfocusable");
        AAlwaysUserIcon = WMCreatePLString("AlwaysUserIcon");
@@ -273,6 +275,9 @@ wDefaultFillAttributes(WScreen * scr, char *instance, char 
*class,
        value = get_value(dw, dc, dn, da, ASkipWindowList, No, 
useGlobalDefault);
        APPLY_VAL(value, skip_window_list, ASkipWindowList);
 
+       value = get_value(dw, dc, dn, da, ASkipSwitchPanel, No, 
useGlobalDefault);
+       APPLY_VAL(value, skip_switchpanel, ASkipSwitchPanel);
+
        value = get_value(dw, dc, dn, da, AKeepInsideScreen, No, 
useGlobalDefault);
        APPLY_VAL(value, dont_move_off, AKeepInsideScreen);
 
diff --git a/src/wdefaults.h b/src/wdefaults.h
index 7e49850..c8cbff5 100644
--- a/src/wdefaults.h
+++ b/src/wdefaults.h
@@ -32,11 +32,12 @@
 #define WA_FOCUSABLE           (1<<6)
 #define WA_OMNIPRESENT                 (1<<7)
 #define WA_SKIP_WINDOW_LIST    (1<<8)
-#define WA_FLOATING            (1<<9)
-#define WA_IGNORE_KEYS                 (1<<10)
-#define WA_IGNORE_MOUSE        (1<<11)
-#define WA_IGNORE_HIDE_OTHERS  (1<<12)
-#define WA_NOT_APPLICATION     (1<<13)
-#define WA_DONT_MOVE_OFF       (1<<14)
+#define WA_SKIP_SWITCHPANEL    (1<<9)
+#define WA_FLOATING            (1<<10)
+#define WA_IGNORE_KEYS                 (1<<11)
+#define WA_IGNORE_MOUSE        (1<<12)
+#define WA_IGNORE_HIDE_OTHERS  (1<<13)
+#define WA_NOT_APPLICATION     (1<<14)
+#define WA_DONT_MOVE_OFF       (1<<15)
 
 #endif
diff --git a/src/window.h b/src/window.h
index ae2897a..47c2506 100644
--- a/src/window.h
+++ b/src/window.h
@@ -109,6 +109,7 @@ typedef struct {
     unsigned int no_shadeable:1;
     unsigned int omnipresent:1;
     unsigned int skip_window_list:1;
+    unsigned int skip_switchpanel:1;
     unsigned int floating:1;          /* put in WMFloatingLevel */
     unsigned int sunken:1;            /* put in WMSunkenLevel */
     unsigned int no_bind_keys:1;       /* intercept wm kbd binds
diff --git a/src/winspector.c b/src/winspector.c
index d01646a..53f2634 100644
--- a/src/winspector.c
+++ b/src/winspector.c
@@ -88,9 +88,9 @@ typedef struct InspectorPanel {
        /* 3rd page. more attributes */
        WMFrame *moreFrm;
 #ifdef XKB_BUTTON_HINT
-       WMButton *moreChk[10];
+       WMButton *moreChk[11];
 #else
-       WMButton *moreChk[9];
+       WMButton *moreChk[10];
 #endif
 
        /* 4th page. icon and workspace */
@@ -134,6 +134,7 @@ static WMPropList *AKeepOnTop;
 static WMPropList *AKeepOnBottom;
 static WMPropList *AOmnipresent;
 static WMPropList *ASkipWindowList;
+static WMPropList *ASkipSwitchPanel;
 static WMPropList *AKeepInsideScreen;
 static WMPropList *AUnfocusable;
 static WMPropList *ADontFocusAcrossWorkspace;
@@ -185,6 +186,7 @@ static void make_keys(void)
        AKeepOnBottom = WMCreatePLString("KeepOnBottom");
        AOmnipresent = WMCreatePLString("Omnipresent");
        ASkipWindowList = WMCreatePLString("SkipWindowList");
+       ASkipSwitchPanel = WMCreatePLString("SkipSwitchPanel");
        AKeepInsideScreen = WMCreatePLString("KeepInsideScreen");
        AUnfocusable = WMCreatePLString("Unfocusable");
        ADontFocusAcrossWorkspace = 
WMCreatePLString("DontFocusAcrossWorkspace");
@@ -574,25 +576,28 @@ static void saveSettings(WMButton * button, 
InspectorPanel * panel)
        different |= insertAttribute(dict, winDic, ASkipWindowList, value, 
flags);
 
        value = (WMGetButtonSelected(panel->moreChk[3]) != 0) ? Yes : No;
-       different |= insertAttribute(dict, winDic, AUnfocusable, value, flags);
+       different |= insertAttribute(dict, winDic, ASkipSwitchPanel, value, 
flags);
 
        value = (WMGetButtonSelected(panel->moreChk[4]) != 0) ? Yes : No;
-       different |= insertAttribute(dict, winDic, AKeepInsideScreen, value, 
flags);
+       different |= insertAttribute(dict, winDic, AUnfocusable, value, flags);
 
        value = (WMGetButtonSelected(panel->moreChk[5]) != 0) ? Yes : No;
-       different |= insertAttribute(dict, winDic, ANoHideOthers, value, flags);
+       different |= insertAttribute(dict, winDic, AKeepInsideScreen, value, 
flags);
 
        value = (WMGetButtonSelected(panel->moreChk[6]) != 0) ? Yes : No;
-       different |= insertAttribute(dict, winDic, ADontSaveSession, value, 
flags);
+       different |= insertAttribute(dict, winDic, ANoHideOthers, value, flags);
 
        value = (WMGetButtonSelected(panel->moreChk[7]) != 0) ? Yes : No;
-       different |= insertAttribute(dict, winDic, AEmulateAppIcon, value, 
flags);
+       different |= insertAttribute(dict, winDic, ADontSaveSession, value, 
flags);
 
        value = (WMGetButtonSelected(panel->moreChk[8]) != 0) ? Yes : No;
+       different |= insertAttribute(dict, winDic, AEmulateAppIcon, value, 
flags);
+
+       value = (WMGetButtonSelected(panel->moreChk[9]) != 0) ? Yes : No;
        different |= insertAttribute(dict, winDic, ADontFocusAcrossWorkspace, 
value, flags);
 
 #ifdef XKB_BUTTON_HINT
-       value = (WMGetButtonSelected(panel->moreChk[9]) != 0) ? Yes : No;
+       value = (WMGetButtonSelected(panel->moreChk[10]) != 0) ? Yes : No;
        different |= insertAttribute(dict, winDic, ANoLanguageButton, value, 
flags);
 #endif
 
@@ -761,14 +766,15 @@ static void applySettings(WMButton * button, 
InspectorPanel * panel)
        WSETUFLAG(wwin, no_bind_keys, WMGetButtonSelected(panel->moreChk[0]));
        WSETUFLAG(wwin, no_bind_mouse, WMGetButtonSelected(panel->moreChk[1]));
        skip_window_list = WMGetButtonSelected(panel->moreChk[2]);
-       WSETUFLAG(wwin, no_focusable, WMGetButtonSelected(panel->moreChk[3]));
-       WSETUFLAG(wwin, dont_move_off, WMGetButtonSelected(panel->moreChk[4]));
-       WSETUFLAG(wwin, no_hide_others, WMGetButtonSelected(panel->moreChk[5]));
-       WSETUFLAG(wwin, dont_save_session, 
WMGetButtonSelected(panel->moreChk[6]));
-       WSETUFLAG(wwin, emulate_appicon, 
WMGetButtonSelected(panel->moreChk[7]));
-       WSETUFLAG(wwin, dont_focus_across_wksp, 
WMGetButtonSelected(panel->moreChk[8]));
+       WSETUFLAG(wwin, skip_switchpanel, 
WMGetButtonSelected(panel->moreChk[3]));
+       WSETUFLAG(wwin, no_focusable, WMGetButtonSelected(panel->moreChk[4]));
+       WSETUFLAG(wwin, dont_move_off, WMGetButtonSelected(panel->moreChk[5]));
+       WSETUFLAG(wwin, no_hide_others, WMGetButtonSelected(panel->moreChk[6]));
+       WSETUFLAG(wwin, dont_save_session, 
WMGetButtonSelected(panel->moreChk[7]));
+       WSETUFLAG(wwin, emulate_appicon, 
WMGetButtonSelected(panel->moreChk[8]));
+       WSETUFLAG(wwin, dont_focus_across_wksp, 
WMGetButtonSelected(panel->moreChk[9]));
 #ifdef XKB_BUTTON_HINT
-       WSETUFLAG(wwin, no_language_button, 
WMGetButtonSelected(panel->moreChk[9]));
+       WSETUFLAG(wwin, no_language_button, 
WMGetButtonSelected(panel->moreChk[10]));
 #endif
        WSETUFLAG(wwin, always_user_icon, WMGetButtonSelected(panel->alwChk));
 
@@ -912,7 +918,7 @@ static void revertSettings(WMButton * button, 
InspectorPanel * panel)
                }
                WMSetButtonSelected(panel->attrChk[i], flag);
        }
-       for (i = 0; i < 9; i++) {
+       for (i = 0; i < 11; i++) {
                int flag = 0;
 
                switch (i) {
@@ -926,25 +932,28 @@ static void revertSettings(WMButton * button, 
InspectorPanel * panel)
                        flag = WFLAGP(wwin, skip_window_list);
                        break;
                case 3:
-                       flag = WFLAGP(wwin, no_focusable);
+                       flag = WFLAGP(wwin, skip_switchpanel);
                        break;
                case 4:
-                       flag = WFLAGP(wwin, dont_move_off);
+                       flag = WFLAGP(wwin, no_focusable);
                        break;
                case 5:
-                       flag = WFLAGP(wwin, no_hide_others);
+                       flag = WFLAGP(wwin, dont_move_off);
                        break;
                case 6:
-                       flag = WFLAGP(wwin, dont_save_session);
+                       flag = WFLAGP(wwin, no_hide_others);
                        break;
                case 7:
-                       flag = WFLAGP(wwin, emulate_appicon);
+                       flag = WFLAGP(wwin, dont_save_session);
                        break;
                case 8:
+                       flag = WFLAGP(wwin, emulate_appicon);
+                       break;
+               case 9:
                        flag = WFLAGP(wwin, dont_focus_across_wksp);
                        break;
 #ifdef XKB_BUTTON_HINT
-               case 9:
+               case 10:
                        flag = WFLAGP(wwin, no_language_button);
                        break;
 #endif
@@ -952,7 +961,7 @@ static void revertSettings(WMButton * button, 
InspectorPanel * panel)
                WMSetButtonSelected(panel->moreChk[i], flag);
        }
        if (panel->appFrm && wapp) {
-               for (i = 0; i < 2; i++) {
+               for (i = 0; i < 3; i++) {
                        int flag = 0;
 
                        switch (i) {
@@ -1319,9 +1328,9 @@ static InspectorPanel *createInspectorForWindow(WWindow * 
wwin, int xpos, int yp
 
        for (i = 0;
 #ifdef XKB_BUTTON_HINT
-            i < 10;
+            i < 11;
 #else
-            i < 9;
+            i < 10;
 #endif
             i++) {
                char *caption = NULL;
@@ -1349,36 +1358,41 @@ static InspectorPanel *createInspectorForWindow(WWindow 
* wwin, int xpos, int yp
                        descr = _("Do not list the window in the window list 
menu.");
                        break;
                case 3:
+                       caption = _("Do not show in the switch panel");
+                       flag = WFLAGP(wwin, skip_switchpanel);
+                       descr = _("Do not include in switchpanel while 
alternating windows.");
+                       break;
+               case 4:
                        caption = _("Do not let it take focus");
                        flag = WFLAGP(wwin, no_focusable);
                        descr = _("Do not let the window take keyboard focus 
when youn" "click on it.");
                        break;
-               case 4:
+               case 5:
                        caption = _("Keep inside screen");
                        flag = WFLAGP(wwin, dont_move_off);
                        descr = _("Do not allow the window to move itself 
completelyn"
                                  "outside the screen. For bug 
compatibility.n");
                        break;
-               case 5:
+               case 6:
                        caption = _("Ignore 'Hide Others'");
                        flag = WFLAGP(wwin, no_hide_others);
                        descr = _("Do not hide the window when issuing then" 
"`HideOthers' command.");
                        break;
-               case 6:
+               case 7:
                        caption = _("Ignore 'Save Session'");
                        flag = WFLAGP(wwin, dont_save_session);
                        descr = _("Do not save the associated application in 
then"
                                  "session's state, so that it won't be 
restartedn"
                                  "together with other applications when Window 
Makern" "starts.");
                        break;
-               case 7:
+               case 8:
                        caption = _("Emulate application icon");
                        flag = WFLAGP(wwin, emulate_appicon);
                        descr = _("Make this window act as an application that 
providesn"
                                  "enough information to Window Maker for a 
dockablen"
                                  "application icon to be created.");
                        break;
-               case 8:
+               case 9:
                        caption = _("Don't focus across workspaces");
                        flag = WFLAGP(wwin, dont_focus_across_wksp);
                        descr = _("Do not allow Window Maker to switch 
workspace to satisfyn"
@@ -1386,7 +1400,7 @@ static InspectorPanel *createInspectorForWindow(WWindow * 
wwin, int xpos, int yp
                                  "firefox opening in a different workspace).");
                        break;
 #ifdef XKB_BUTTON_HINT
-               case 9:
+               case 10:
                        caption = _("Disable language button");
                        flag = WFLAGP(wwin, no_language_button);
                        descr = _("Remove the `toggle language' button of the 
window.");
diff --git a/src/wmspec.c b/src/wmspec.c
index 1d50246..d166d28 100644
--- a/src/wmspec.c
+++ b/src/wmspec.c
@@ -1101,6 +1101,7 @@ static Bool handleWindowType(WWindow * wwin, Atom type, 
int *layer)
                wwin->client_flags.no_movable = 1;
                wwin->client_flags.omnipresent = 1;
                wwin->client_flags.skip_window_list = 1;
+               wwin->client_flags.skip_switchpanel = 1;
                wwin->client_flags.dont_move_off = 1;
                wwin->client_flags.no_appicon = 1;
                wwin->flags.net_skip_pager = 1;
@@ -1116,6 +1117,7 @@ static Bool handleWindowType(WWindow * wwin, Atom type, 
int *layer)
                wwin->client_flags.no_movable = 1;
                wwin->client_flags.omnipresent = 1;
                wwin->client_flags.skip_window_list = 1;
+               wwin->client_flags.skip_switchpanel = 1;
                wwin->client_flags.dont_move_off = 1;
                wwin->flags.net_skip_pager = 1;
        } else if (type == net_wm_window_type_toolbar) {
@@ -1125,6 +1127,7 @@ static Bool handleWindowType(WWindow * wwin, Atom type, 
int *layer)
                wwin->client_flags.no_resizebar = 1;
                wwin->client_flags.no_shadeable = 1;
                wwin->client_flags.skip_window_list = 1;
+               wwin->client_flags.skip_switchpanel = 1;
                wwin->client_flags.dont_move_off = 1;
                wwin->client_flags.no_appicon = 1;
        } else if (type == net_wm_window_type_menu) {
@@ -1134,6 +1137,7 @@ static Bool handleWindowType(WWindow * wwin, Atom type, 
int *layer)
                wwin->client_flags.no_resizebar = 1;
                wwin->client_flags.no_shadeable = 1;
                wwin->client_flags.skip_window_list = 1;
+               wwin->client_flags.skip_switchpanel = 1;
                wwin->client_flags.dont_move_off = 1;
                wwin->client_flags.no_appicon = 1;
        } else if (type == net_wm_window_type_utility) {
@@ -1146,6 +1150,7 @@ static Bool handleWindowType(WWindow * wwin, Atom type, 
int *layer)
                wwin->client_flags.no_shadeable = 1;
                wwin->client_flags.no_movable = 1;
                wwin->client_flags.skip_window_list = 1;
+               wwin->client_flags.skip_switchpanel = 1;
                wwin->client_flags.dont_move_off = 1;
                wwin->client_flags.no_appicon = 1;
                wwin->flags.net_skip_pager = 1;

-----------------------------------------------------------------------

Summary of changes:
 src/switchpanel.c |    4 +++
 src/wdefaults.c   |    5 +++
 src/wdefaults.h   |   13 +++++----
 src/window.h      |    1 +
 src/winspector.c  |   76 +++++++++++++++++++++++++++++++---------------------
 src/wmspec.c      |    5 +++
 6 files changed, 67 insertions(+), 37 deletions(-)


repo.or.cz automatic notification. Contact project admin [email protected]
if you want to unsubscribe, or site admin [email protected] if you receive
no reply.
-- 
wmaker-crm.git ("Fork from the last available CVS version of Window Maker")


-- 
To unsubscribe, send mail to [email protected].

Reply via email to