def moveresize(self, x=None, y=None, w=None, h=None): # Ignore this if the user is moving the window... if self.moving: print 'Sorry but %s is moving...' % self return try: window.moveresize(self.wid, x, y, w, h) except: pass
def moveresize(self, x=None, y=None, w=None, h=None): # Ignore this if the user is moving the window... if self.moving: print("Sorry but %s is moving ..." % self) return try: window.moveresize(self.wid, x, y, w, h) except: debug("Encountered a bare except and it passed.") pass
def restore(self): debug('Restoring %s' % self) if getattr(config, 'remove_decorations', False): motif.set_hints_checked(self.wid, 2, decoration=1).check() if getattr(config, 'tiles_below', False): ewmh.request_wm_state_checked( self.wid, 0, util.get_atom('_NET_WM_STATE_BELOW')).check() if self.saved_state: fullymaxed = False vatom = util.get_atom('_NET_WM_STATE_MAXIMIZED_VERT') hatom = util.get_atom('_NET_WM_STATE_MAXIMIZED_HORZ') if vatom in self.saved_state and hatom in self.saved_state: fullymaxed = True ewmh.request_wm_state_checked(self.wid, 1, vatom, hatom).check() elif vatom in self.saved_state: ewmh.request_wm_state_checked(self.wid, 1, vatom).check() elif hatom in self.saved_state: ewmh.request_wm_state_checked(self.wid, 1, hatom).check() # No need to continue if we've fully maximized the window if fullymaxed: return mnow = rect.get_monitor_area(window.get_geometry(self.wid), state.monitors) mold = rect.get_monitor_area(self.saved_geom, state.monitors) x, y, w, h = self.saved_geom # What if the client is on a monitor different than what it was before? # Use the same algorithm in Openbox to convert one monitor's # coordinates to another. if mnow != mold: nowx, nowy, noww, nowh = mnow oldx, oldy, oldw, oldh = mold xrat, yrat = float(noww) / float(oldw), float(nowh) / float(oldh) x = nowx + (x - oldx) * xrat y = nowy + (y - oldy) * yrat w *= xrat h *= yrat window.moveresize(self.wid, x, y, w, h)
def restore(self): debug('Restoring %s' % self) if config.remove_decorations: motif.set_hints_checked(self.wid,2,decoration=1).check() if config.tiles_below: ewmh.request_wm_state_checked(self.wid,0,util.get_atom('_NET_WM_STATE_BELOW')).check() if self.saved_state: fullymaxed = False vatom = util.get_atom('_NET_WM_STATE_MAXIMIZED_VERT') hatom = util.get_atom('_NET_WM_STATE_MAXIMIZED_HORZ') if vatom in self.saved_state and hatom in self.saved_state: fullymaxed = True ewmh.request_wm_state_checked(self.wid, 1, vatom, hatom).check() elif vatom in self.saved_state: ewmh.request_wm_state_checked(self.wid, 1, vatom).check() elif hatom in self.saved_state: ewmh.request_wm_state_checked(self.wid, 1, hatom).check() # No need to continue if we've fully maximized the window if fullymaxed: return mnow = rect.get_monitor_area(window.get_geometry(self.wid), state.monitors) mold = rect.get_monitor_area(self.saved_geom, state.monitors) x, y, w, h = self.saved_geom # What if the client is on a monitor different than what it was before? # Use the same algorithm in Openbox to convert one monitor's # coordinates to another. if mnow != mold: nowx, nowy, noww, nowh = mnow oldx, oldy, oldw, oldh = mold xrat, yrat = float(noww) / float(oldw), float(nowh) / float(oldh) x = nowx + (x - oldx) * xrat y = nowy + (y - oldy) * yrat w *= xrat h *= yrat window.moveresize(self.wid, x, y, w, h)
def moveresize(self, x=None, y=None, w=None, h=None): self.unmaximize() window.moveresize(self.wid, x, y, w, h, self.window_manager)