Skip to content

Commit

Permalink
DockbarX wasn't readded after reload. That should be fixed now.
Browse files Browse the repository at this point in the history
Parent applets should have a function readd_container that dockbar
can call.
  • Loading branch information
Matias Särs committed Jun 19, 2014
1 parent 6d00298 commit 1e32b47
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 10 deletions.
31 changes: 23 additions & 8 deletions AWN/DockBarX/DockBarX.py
Expand Up @@ -60,10 +60,10 @@ def __on_idle(self):
self.db = dockbarx.dockbar.DockBar(self)
self.db.set_parent_window_reporting(True)
self.db.load()

# Inactive dockbarx's size overflow management
self.db.set_max_size(3000)

if self.get_pos_type() == gtk.POS_RIGHT:
self.db.set_orient("right")
self.alignment.set(1, 0, 0, 0)
Expand Down Expand Up @@ -145,7 +145,7 @@ def add_window(self, window, reset_should_autohide=True):
self.__calc_border_distance(window)
if self.db_loaded and reset_should_autohide:
self.__compute_should_autohide()

def remove_window(self, window, reset_should_autohide=True, forced=False):
if window in self.border_distances:
del self.border_distances[window]
Expand All @@ -171,7 +171,7 @@ def __update_autohide(self):
def __on_window_state_changed(self, wnck_window,changed_mask, new_state):
if WNCK_WINDOW_STATE_MINIMIZED & changed_mask:
self.__compute_should_autohide()

def __on_window_geometry_changed(self, window):
if time.time() - self.geometry_time < 0.12 and \
window == self.last_geometry_window():
Expand All @@ -188,7 +188,7 @@ def __on_active_window_changed(self, screen, previous_active_window):

def __on_behavior_changed(self, *args):
self.__compute_should_autohide()

def __calc_border_distance(self, window, reset_should_autohide=False):
bd = {"left": 1000, "right": 1000, "top": 1000, "bottom": 1000}
x, y, w, h = window.get_geometry()
Expand Down Expand Up @@ -241,19 +241,34 @@ def get_monitor(self):
if screen is None:
screen = gtk.gdk.screen_get_default()
return screen.get_monitor_at_window(self.window)

def get_monitor_geometry(self):
screen = self.get_screen()
if screen is None:
screen = gtk.gdk.screen_get_default()
monitor = screen.get_monitor_at_window(self.window)
return screen.get_monitor_geometry(monitor)

def reload():
def reload(self=None):
self.db_loaded = False
self.db.reload()
self.db.reload(tell_parent=False)
self.db_loaded = True

def readd_container(self, container):
# Dockbar calls back with this function when it is reloaded
# unless it's reloaded with tell_parent=True
if self.db.get_orient() in ("up", "down"):
container.set_size_request(-1, self.get_size() + \
self.icon.get_offset() + 5)
else:
container.set_size_request(self.get_size() + \
self.icon.get_offset() + 5, -1)
self.alignment.add(container)
container.show_all()
self.__compute_should_autohide()



class AWNappletDBus(dbus.service.Object):

def __init__(self, applet):
Expand Down
6 changes: 5 additions & 1 deletion dockbarx/dockbar.py
Expand Up @@ -549,7 +549,7 @@ def load(self):

self.reload()

def reload(self, event=None, data=None):
def reload(self, event=None, data=None, tell_parent=True):
"""Reloads DockbarX."""
logger.info("DockbarX reload")
# Clear away the old stuff, if any.
Expand Down Expand Up @@ -635,6 +635,10 @@ def reload(self, event=None, data=None):
self.__on_desktop_changed)

self.__on_active_window_changed(self.screen, None)
# Since the old container is destroyed we need to tell
# parent to readd it.
if tell_parent:
self.parent.readd_container(self.get_container())


def set_orient(self, orient):
Expand Down
2 changes: 1 addition & 1 deletion dockx
Expand Up @@ -1212,7 +1212,7 @@ class DockX(CairoDockX):

def reload(self, *args):
self.db_loaded = False
self.dockbar.reload()
self.dockbar.reload(tell_parent=False)
self.db_loaded = True
self.applets.find_applets()
self.theme.reload()
Expand Down

0 comments on commit 1e32b47

Please sign in to comment.