~ubuntu-branches/ubuntu/jaunty/compiz/jaunty-updates

« back to all changes in this revision

Viewing changes to debian/patches/050-scale-keybinding-toggle.patch

  • Committer: Bazaar Package Importer
  • Author(s): Michael Vogt, Michael Vogt, Christopher James Halse Rogers
  • Date: 2008-12-17 21:19:13 UTC
  • Revision ID: james.westby@ubuntu.com-20081217211913-h1ur6u0qx8yydu2x
Tags: 1:0.7.8-0ubuntu5
[ Michael Vogt ]
* patch cleanup with compiz upstream, removed:
  - 0001-Make-sure-that-unredirected-fullscreen-windows-are-f.patch
  - 0003-Move-input-focus-back-to-the-active-window-after-red.pat
  - 015-disable-glib-plugin.patch
  - 019_fix_wnck_2.19.4.patch
  - 022_fix_session_managment.patch 
  - 024_add_config_notify.patch
  - 031_add_compiz_common.patch
  - 038_from_git_fix_incomplete_rotate.patch
  - 043-blur-plugin-fix-from-git.patch
  - 043-new-gnome-session.patch
* removed no longer applied patches from the repo too
* debian/rules
  - fix build failure with latest control center
* debian/control:
  - add missing libgnomeui-dev build-depends
* rebuild against latest libgnome-desktop-dev

[ Christopher James Halse Rogers ]
* debian/patches/050-scale-keybinding-toggle.patch
  - Allow setting the scale initiate keybinding as a toggle (LP: #281911).
    Patch from upstream git.
* debian/patches/051-new-kde4-plasma-api.patch
  - PanelSvg has been renamed to FrameSvg in KDE 4.2.  Upstream bug is
    https://bugs.freedesktop.org/show_bug.cgi?id=18637

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
From: Danny Baumann <dannybaumann@web.de>
 
2
Date: Tue, 7 Oct 2008 06:32:46 +0000 (+0200)
 
3
Subject: Added options for making scale's key and button bindings adding as toggle switches.
 
4
X-Git-Url: http://gitweb.compiz-fusion.org/?p=compiz;a=commitdiff_plain;h=d2bd7d5f1adb93481fcb8917b5e480e45bce4d48;hp=46793cb5f3f21a3153d41aaf6b6e54c6379641d9
 
5
 
 
6
Added options for making scale's key and button bindings adding as toggle switches.
 
7
---
 
8
 
 
9
diff --git a/include/compiz-scale.h b/include/compiz-scale.h
 
10
index 528bfa8..603612f 100644
 
11
--- a/include/compiz-scale.h
 
12
+++ b/include/compiz-scale.h
 
13
@@ -30,7 +30,7 @@
 
14
 
 
15
 COMPIZ_BEGIN_DECLS
 
16
 
 
17
-#define SCALE_ABIVERSION 20080301
 
18
+#define SCALE_ABIVERSION 20081007
 
19
 
 
20
 #define SCALE_STATE_NONE 0
 
21
 #define SCALE_STATE_OUT  1
 
22
@@ -73,7 +73,9 @@ typedef struct _SlotArea {
 
23
 #define SCALE_DISPLAY_OPTION_INITIATE_OUTPUT_KEY    13
 
24
 #define SCALE_DISPLAY_OPTION_SHOW_DESKTOP           14
 
25
 #define SCALE_DISPLAY_OPTION_RELAYOUT               15
 
26
-#define SCALE_DISPLAY_OPTION_NUM                    16
 
27
+#define SCALE_DISPLAY_OPTION_KEY_BINDINGS_TOGGLE    16
 
28
+#define SCALE_DISPLAY_OPTION_BUTTON_BINDINGS_TOGGLE 17
 
29
+#define SCALE_DISPLAY_OPTION_NUM                    18
 
30
 
 
31
 typedef struct _ScaleDisplay {
 
32
     int                    screenPrivateIndex;
 
33
diff --git a/metadata/scale.xml.in b/metadata/scale.xml.in
 
34
index c551aa3..c8b574a 100644
 
35
--- a/metadata/scale.xml.in
 
36
+++ b/metadata/scale.xml.in
 
37
@@ -14,6 +14,16 @@
 
38
                </default>
 
39
                <allowed edgednd="true"/>
 
40
            </option>
 
41
+           <option name="key_bindings_toggle" type="bool">
 
42
+               <_short>Key Bindings Toggle Scale Mode</_short>
 
43
+               <_long>Key bindings toggle scale mode instead of enabling it when pressed and disabling it when released.</_long>
 
44
+               <default>false</default>
 
45
+           </option>
 
46
+           <option name="button_bindings_toggle" type="bool">
 
47
+               <_short>Button Bindings Toggle Scale Mode</_short>
 
48
+               <_long>Button bindings toggle scale mode instead of enabling it when pressed and disabling it when released.</_long>
 
49
+               <default>false</default>
 
50
+           </option>
 
51
            <option name="initiate_key" type="key">
 
52
                <_short>Initiate Window Picker</_short>
 
53
                <_long>Layout and start transforming windows</_long>
 
54
diff --git a/plugins/scale.c b/plugins/scale.c
 
55
index aea2ead..8488c75 100644
 
56
--- a/plugins/scale.c
 
57
+++ b/plugins/scale.c
 
58
@@ -1019,20 +1019,32 @@ scaleTerminate (CompDisplay     *d,
 
59
 {
 
60
     CompScreen *s;
 
61
     Window     xid;
 
62
+    Bool       terminate = TRUE;
 
63
 
 
64
     SCALE_DISPLAY (d);
 
65
 
 
66
-    xid = getIntOptionNamed (option, nOption, "root", 0);
 
67
+    if (action->state & CompActionStateTermKey)
 
68
+       if (sd->opt[SCALE_DISPLAY_OPTION_KEY_BINDINGS_TOGGLE].value.b)
 
69
+           terminate = FALSE;
 
70
 
 
71
-    for (s = d->screens; s; s = s->next)
 
72
-    {
 
73
-       SCALE_SCREEN (s);
 
74
+    if (action->state & CompActionStateTermButton)
 
75
+       if (sd->opt[SCALE_DISPLAY_OPTION_BUTTON_BINDINGS_TOGGLE].value.b)
 
76
+           terminate = FALSE;
 
77
 
 
78
-       if (xid && s->root != xid)
 
79
-           continue;
 
80
+    if (terminate)
 
81
+    {
 
82
+       xid = getIntOptionNamed (option, nOption, "root", 0);
 
83
 
 
84
-       if (ss->grab)
 
85
+       for (s = d->screens; s; s = s->next)
 
86
        {
 
87
+           SCALE_SCREEN (s);
 
88
+
 
89
+           if (xid && s->root != xid)
 
90
+               continue;
 
91
+
 
92
+           if (!ss->grab)
 
93
+               continue;
 
94
+
 
95
            if (ss->grabIndex)
 
96
            {
 
97
                removeScreenGrab (s, ss->grabIndex, 0);
 
98
@@ -1196,6 +1208,26 @@ scaleInitiateCommon (CompScreen      *s,
 
99
 }
 
100
 
 
101
 static Bool
 
102
+scaleInitiateShouldTerminate (CompDisplay     *d,
 
103
+                             CompActionState state)
 
104
+{
 
105
+    SCALE_DISPLAY (d);
 
106
+
 
107
+    if (state & EDGE_STATE)
 
108
+       return TRUE;
 
109
+
 
110
+    if (state & CompActionStateInitKey)
 
111
+       if (sd->opt[SCALE_DISPLAY_OPTION_KEY_BINDINGS_TOGGLE].value.b)
 
112
+           return TRUE;
 
113
+
 
114
+    if (state & CompActionStateInitButton)
 
115
+       if (sd->opt[SCALE_DISPLAY_OPTION_BUTTON_BINDINGS_TOGGLE].value.b)
 
116
+           return TRUE;
 
117
+
 
118
+    return FALSE;
 
119
+}
 
120
+
 
121
+static Bool
 
122
 scaleInitiate (CompDisplay     *d,
 
123
               CompAction      *action,
 
124
               CompActionState state,
 
125
@@ -1217,7 +1249,7 @@ scaleInitiate (CompDisplay     *d,
 
126
            ss->type = ScaleTypeNormal;
 
127
            return scaleInitiateCommon (s, action, state, option, nOption);
 
128
        }
 
129
-       else if (state & EDGE_STATE)
 
130
+       else if (scaleInitiateShouldTerminate (d, state))
 
131
        {
 
132
            if (ss->type == ScaleTypeNormal)
 
133
                return scaleTerminate (s->display, action,
 
134
@@ -1250,7 +1282,7 @@ scaleInitiateAll (CompDisplay     *d,
 
135
            ss->type = ScaleTypeAll;
 
136
            return scaleInitiateCommon (s, action, state, option, nOption);
 
137
        }
 
138
-       else if (state & EDGE_STATE)
 
139
+       else if (scaleInitiateShouldTerminate (d, state))
 
140
        {
 
141
            if (ss->type == ScaleTypeAll)
 
142
                return scaleTerminate (s->display, action,
 
143
@@ -1292,7 +1324,7 @@ scaleInitiateGroup (CompDisplay     *d,
 
144
                return scaleInitiateCommon (s, action, state, option, nOption);
 
145
            }
 
146
        }
 
147
-       else if (state & EDGE_STATE)
 
148
+       else if (scaleInitiateShouldTerminate (d, state))
 
149
        {
 
150
            if (ss->type == ScaleTypeGroup)
 
151
                return scaleTerminate (s->display, action,
 
152
@@ -1325,7 +1357,7 @@ scaleInitiateOutput (CompDisplay     *d,
 
153
            ss->type = ScaleTypeOutput;
 
154
            return scaleInitiateCommon (s, action, state, option, nOption);
 
155
        }
 
156
-       else if (state & EDGE_STATE)
 
157
+       else if (scaleInitiateShouldTerminate (d, state))
 
158
        {
 
159
            if (ss->type == ScaleTypeOutput)
 
160
                return scaleTerminate (s->display, action,
 
161
@@ -1933,7 +1965,9 @@ static const CompMetadataOptionInfo scaleDisplayOptionInfo[] = {
 
162
       scaleInitiateOutput, scaleTerminate },
 
163
     { "initiate_output_key", "key", 0, scaleInitiateOutput, scaleTerminate },
 
164
     { "show_desktop", "bool", 0, 0, 0 },
 
165
-    { "relayout_slots", "action", 0, scaleRelayoutSlots, 0 }
 
166
+    { "relayout_slots", "action", 0, scaleRelayoutSlots, 0 },
 
167
+    { "key_bindings_toggle", "bool", 0, 0, 0 },
 
168
+    { "button_bindings_toggle", "bool", 0, 0, 0 }
 
169
 };
 
170
 
 
171
 static Bool