Skip to content

Commit 694d8c1

Browse files
author
Matias Särs
committed
- Improved code separation: everything specific to gnomeapplet is moved out of dockbar.py and into dockbar_factory. The dockbar class is also not acting differently depending on if it is runned in dockx, awn or gnome panel, instead it needs to be instructed by the calling class on how to act.
- The awn applet has been broken since size overflow management was introduced. It works again now (but it can't still manage size overflow).
1 parent 487c12c commit 694d8c1

File tree

7 files changed

+293
-217
lines changed

7 files changed

+293
-217
lines changed

AWN/DockBarX/DockBarX.py

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,12 @@ def __on_idle(self):
5757
self.alignment = gtk.Alignment()
5858
self.add(self.alignment)
5959
self.alignment.show()
60-
self.db = dockbarx.dockbar.DockBar(awn_applet=self)
60+
self.db = dockbarx.dockbar.DockBar(self)
61+
self.db.set_parent_window_reporting(True)
6162
self.db.load()
6263

6364
# Inactive dockbarx's size overflow management
64-
self.db.groups.max_size = 3000
65+
self.db.set_max_size(3000)
6566

6667
if self.get_pos_type() == gtk.POS_RIGHT:
6768
self.db.set_orient("right")
@@ -75,39 +76,41 @@ def __on_idle(self):
7576
else:
7677
self.db.set_orient("down")
7778
self.alignment.set(0, 1, 0, 0)
78-
if self.db.orient in ("down", "up"):
79-
self.db.container.set_size_request(-1, self.get_size() + \
79+
container = self.db.get_container()
80+
if self.db.get_orient() in ("down", "up"):
81+
container.set_size_request(-1, self.get_size() + \
8082
self.icon.get_offset() + 5)
8183
else:
82-
self.db.container.set_size_request(self.get_size() + \
84+
container.set_size_request(self.get_size() + \
8385
self.icon.get_offset() + 5, -1)
84-
self.alignment.add(self.db.container)
86+
self.alignment.add(container)
8587
self.connect("size-changed", self.__on_size_changed)
8688
self.connect("offset-changed", self.__on_size_changed)
8789
self.connect("position-changed", self.__on_position_changed)
8890
self.globals.connect("awn-behavior-changed",
8991
self.__on_behavior_changed)
90-
self.db.container.show()
92+
container.show_all()
9193
self.show()
9294
self.wnck_screen.connect("active-window-changed",
9395
self.__on_active_window_changed)
9496
gobject.timeout_add(200, self.__update_autohide)
95-
for window in self.db.windows:
97+
for window in self.db.get_windows():
9698
self.add_window(window)
9799
self.db_loaded = True
98100
self.__compute_should_autohide()
99101

100102
def __on_size_changed(self, *args):
101-
if self.db.orient in ("down", "up"):
102-
self.db.container.set_size_request(-1, self.get_size() + \
103+
container = self.db.get_container()
104+
if self.db.get_orient() in ("down", "up"):
105+
container.set_size_request(-1, self.get_size() + \
103106
self.icon.get_offset() + 5)
104107
else:
105-
self.db.container.set_size_request(self.get_size() + \
108+
container.set_size_request(self.get_size() + \
106109
self.icon.get_offset() + 5, -1)
107110
self.__compute_should_autohide()
108111

109112
def __on_position_changed(self, applet, position):
110-
self.alignment.remove(self.db.container)
113+
self.alignment.remove(self.db.get_container())
111114
if self.get_pos_type() == gtk.POS_RIGHT:
112115
self.db.set_orient("right")
113116
self.alignment.set(1, 0, 0, 0)
@@ -120,14 +123,15 @@ def __on_position_changed(self, applet, position):
120123
else:
121124
self.db.set_orient("down")
122125
self.alignment.set(0, 1, 0, 0)
123-
if self.db.orient in ("up", "down"):
124-
self.db.container.set_size_request(-1, self.get_size() + \
126+
container = self.db.get_container()
127+
if self.db.get_orient() in ("up", "down"):
128+
container.set_size_request(-1, self.get_size() + \
125129
self.icon.get_offset() + 5)
126130
else:
127-
self.db.container.set_size_request(self.get_size() + \
131+
container.set_size_request(self.get_size() + \
128132
self.icon.get_offset() + 5, -1)
129-
self.alignment.add(self.db.container)
130-
self.db.container.show()
133+
self.alignment.add(container)
134+
container.show_all()
131135
self.show()
132136
self.__compute_should_autohide()
133137

@@ -216,7 +220,7 @@ def __compute_should_autohide(self):
216220
return True
217221
self.should_autohide = False
218222
active_workspace = self.wnck_screen.get_active_workspace()
219-
for window in self.db.windows:
223+
for window in self.db.get_windows():
220224
if window.is_minimized():
221225
continue
222226
if self.behavior == "dodge active window" and \

dockbarx/cairowidgets.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,15 @@
3535
class CairoAppButton(gtk.EventBox):
3636
__gsignals__ = {"expose-event" : "override",
3737
"size_allocate": "override"}
38-
def __init__(self, surface=None, in_dock=False):
38+
def __init__(self, surface=None, expose_on_clear=False):
3939
gtk.EventBox.__init__(self)
4040
self.set_visible_window(False)
4141
self.area = gtk.Alignment(0, 0, 1, 1)
4242
self.add(self.area)
4343
self.area.show()
4444
self.globals = Globals()
4545
self.surface = surface
46-
self.in_dock = in_dock
46+
self.expose_on_clear = expose_on_clear
4747
self.badge = None
4848
self.badge_text = None
4949
self.progress_bar = None
@@ -59,7 +59,7 @@ def update(self, surface=None):
5959
self.surface = surface
6060
if self.window is None:
6161
return
62-
if self.in_dock:
62+
if self.expose_on_clear:
6363
self.area.window.clear_area_e(a.x, a.y, a.width, a.height)
6464
else:
6565
self.area.window.clear_area(a.x, a.y, a.width, a.height)

dockbarx/dbx_dbus.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def __init__(self, dockbar):
4040
in_signature="", out_signature="",)
4141
def Reload(self):
4242
dockbar = self.dockbar_r()
43-
if not dockbar.is_dock:
43+
if not dockbar.no_dbus_reload:
4444
dockbar.reload()
4545

4646
@dbus.service.method(dbus_interface=dbus.PROPERTIES_IFACE,

0 commit comments

Comments
 (0)