From e8b0fadf811735a7e121fa93f3fb2c5d3446b5e8 Mon Sep 17 00:00:00 2001 From: Marcel Partap Date: Wed, 25 Apr 2012 15:58:27 +0200 Subject: [PATCH 1/6] Prevent resizing when showing fullscreen. --- src/guake | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/guake b/src/guake index 33ad7fdc..ce6c5fea 100644 --- a/src/guake +++ b/src/guake @@ -786,9 +786,8 @@ class Guake(SimpleGladeApp): if not self.term_list: self.add_tab() - window_rect = self.get_final_window_rect() - self.window.move(window_rect.x, window_rect.y) - self.window.resize(window_rect.width, window_rect.height) + if not self.fullscreen: + self.client.notify(KEY('/general/window_height')) self.window.show_all() try: From a7367a7b9ac80ca5796273756d8254f050917e45 Mon Sep 17 00:00:00 2001 From: Dom Sekotill Date: Tue, 27 Sep 2011 11:26:01 +0100 Subject: [PATCH 2/6] Added starting in fullscreen mode with a prefs checkbox. --- data/prefs.glade | 14 ++++++++++++++ src/guake | 6 +++++- src/prefs.py | 9 +++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/data/prefs.glade b/data/prefs.glade index d7b2441f..d486210c 100644 --- a/data/prefs.glade +++ b/data/prefs.glade @@ -337,6 +337,20 @@ 2 + + + Start fullscreen + True + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + + + + 3 + + diff --git a/src/guake b/src/guake index ce6c5fea..a25b3f60 100644 --- a/src/guake +++ b/src/guake @@ -576,7 +576,11 @@ class Guake(SimpleGladeApp): self.selected_tab = None # holds fullscreen status - self.fullscreen = False + self.fullscreen = self.client.get_bool(KEY('/general/start_fullscreen')) + + # set fullscreen? + if self.fullscreen: + self.window.fullscreen() # holds the timestamp of the losefocus event self.losefocus_time = 0 diff --git a/src/prefs.py b/src/prefs.py index 9b833e4f..709d95e2 100644 --- a/src/prefs.py +++ b/src/prefs.py @@ -172,6 +172,11 @@ class PrefsCallbacks(object): """ self.client.set_bool(KEY('/general/window_tabbar'), chk.get_active()) + def on_start_fullscreen_toggled(self, chk): + """Changes the activity of start_fullscreen in gconf + """ + self.client.set_bool(KEY('/general/start_fullscreen'), chk.get_active()) + def on_window_height_value_changed(self, hscale): """Changes the value of window_height in gconf """ @@ -478,6 +483,10 @@ class PrefsDialog(SimpleGladeApp): value = self.client.get_bool(KEY('/general/window_tabbar')) self.get_widget('window_tabbar').set_active(value) + # start fullscreen + value = self.client.get_bool(KEY('/general/start_fullscreen')) + self.get_widget('start_fullscreen').set_active(value) + # scrollbar value = self.client.get_bool(KEY('/general/use_scrollbar')) self.get_widget('use_scrollbar').set_active(value) From 425903fe3dca238b6fed3ba25be8c1511fcc038d Mon Sep 17 00:00:00 2001 From: Dom Sekotill Date: Thu, 29 Sep 2011 14:18:53 +0100 Subject: [PATCH 3/6] Added start in fullscreen to the gconf schema. --- data/guake.schemas | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/data/guake.schemas b/data/guake.schemas index 403bf1dc..4c614a26 100644 --- a/data/guake.schemas +++ b/data/guake.schemas @@ -105,6 +105,18 @@ + + /schemas/apps/guake/general/start_fullscreen + /apps/guake/general/start_fullscreen + guake + bool + false + + Start fullscreen. + When true, the program will start in fullscreen mode. + + + /schemas/apps/guake/general/window_width /apps/guake/general/window_width From 40256dce9c4b8dabfb388f61b859eeada1763e33 Mon Sep 17 00:00:00 2001 From: Marcel Partap Date: Mon, 11 Jun 2012 20:56:01 +0200 Subject: [PATCH 4/6] Consolidate fullscreen state changes & implement --fullscreen switch --- src/guake | 69 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/src/guake b/src/guake index a25b3f60..fa77c1cc 100644 --- a/src/guake +++ b/src/guake @@ -189,8 +189,8 @@ class GConfHandler(object): in guake. """ window_rect = self.guake.get_final_window_rect() - self.guake.window.move(window_rect.x, window_rect.y) self.guake.window.resize(window_rect.width, window_rect.height) + self.guake.window.move(window_rect.x, window_rect.y) def scrollbar_toggled(self, client, connection_id, entry, data): """If the gconf var use_scrollbar be changed, this method will @@ -576,11 +576,10 @@ class Guake(SimpleGladeApp): self.selected_tab = None # holds fullscreen status - self.fullscreen = self.client.get_bool(KEY('/general/start_fullscreen')) + self.is_fullscreen = False - # set fullscreen? - if self.fullscreen: - self.window.fullscreen() + if self.client.get_bool(KEY('/general/start_fullscreen')): + self.fullscreen() # holds the timestamp of the losefocus event self.losefocus_time = 0 @@ -790,7 +789,7 @@ class Guake(SimpleGladeApp): if not self.term_list: self.add_tab() - if not self.fullscreen: + if not self.is_fullscreen: self.client.notify(KEY('/general/window_height')) self.window.show_all() @@ -954,36 +953,39 @@ class Guake(SimpleGladeApp): def accel_toggle_fullscreen(self, *args): """Callback toggle the fullscreen status of the main - window. It uses the toolbar_visible_in_fullscreen variable - from gconf to decide if the tabbar will or not be - shown. Called by the accel key. + window. Called by the accel key. """ - val = self.client.get_bool(KEY('general/toolbar_visible_in_fullscreen')) - if not self.fullscreen: - self.window.fullscreen() - self.fullscreen = True - - # The resizer widget really don't need to be shown in - # fullscreen mode, but tabbar will only be shown if a - # hidden gconf key is false. - self.resizer.hide() - if not val: - self.toolbar.hide() + if not self.is_fullscreen: + self.fullscreen() else: - self.window.unfullscreen() - self.fullscreen = False - - # making sure that tabbar and resizer will come back to - # their default state. - self.client.notify(KEY('/general/window_tabbar')) - self.client.notify(KEY('/general/show_resizer')) - # make sure the window size is correct after returning - # from fullscreen - self.client.notify(KEY('/general/window_height')) + self.unfullscreen() return True + def fullscreen(self): + self.window.fullscreen() + self.is_fullscreen = True + + # The resizer widget really don't need to be shown in + # fullscreen mode, but tabbar will only be shown if a + # hidden gconf key is false. + self.resizer.hide() + if not self.client.get_bool(KEY('general/toolbar_visible_in_fullscreen')): + self.toolbar.hide() + + def unfullscreen(self): + self.window.unfullscreen() + self.is_fullscreen = False + + # making sure that tabbar and resizer will come back to + # their default state. + self.client.notify(KEY('/general/window_tabbar')) + self.client.notify(KEY('/general/show_resizer')) + # make sure the window size is correct after returning + # from fullscreen. broken on old compiz/metacity versions :C + self.client.notify(KEY('/general/window_height')) + # -- callbacks -- def on_terminal_exited(self, term, widget): @@ -1316,6 +1318,10 @@ def main(): """ from optparse import OptionParser parser = OptionParser() + parser.add_option('-f', '--fullscreen', dest='fullscreen', + action='store_true', default=False, + help=_('Put Guake in fullscreen mode')) + parser.add_option('-t', '--toggle-visibility', dest='show_hide', action='store_true', default=False, help=_('Toggles the visibility of the terminal window')) @@ -1368,6 +1374,9 @@ def main(): called_with_param = False + if options.fullscreen: + instance.fullscreen() + if options.show_hide: remote_object.show_hide() called_with_param = True From 9b38eeca69b86e26880a0fabfce4dcac996572ce Mon Sep 17 00:00:00 2001 From: Marcel Partap Date: Mon, 11 Jun 2012 21:20:07 +0200 Subject: [PATCH 5/6] Rename variable (less brain twisting) --- src/guake | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/src/guake b/src/guake index fa77c1cc..f16bff68 100644 --- a/src/guake +++ b/src/guake @@ -1372,50 +1372,46 @@ def main(): remote_object = DbusManager(instance) already_running = False - called_with_param = False + only_show_hide = True if options.fullscreen: instance.fullscreen() - if options.show_hide: - remote_object.show_hide() - called_with_param = True - if options.show_preferences: remote_object.show_prefs() - called_with_param = True + only_show_hide = False if options.new_tab: remote_object.add_tab(options.new_tab) - called_with_param = True + only_show_hide = False if options.select_tab: selected = int(options.select_tab) remote_object.select_tab(selected) - called_with_param = True + only_show_hide = False if options.selected_tab: selected = remote_object.get_selected_tab() sys.stdout.write('%d\n' % selected) - called_with_param = True + only_show_hide = False if options.command: remote_object.execute_command(options.command) - called_with_param = True + only_show_hide = False if options.rename_tab: remote_object.rename_current_tab(options.rename_tab) - called_with_param = True + only_show_hide = False if options.show_about: remote_object.show_about() - called_with_param = True + only_show_hide = False if options.quit: remote_object.quit() - called_with_param = True + only_show_hide = False - if not called_with_param and already_running: + if already_running and only_show_hide: # here we know that guake was called without any parameter and # it is already running, so, lets toggle its visibility. remote_object.show_hide() From 9fa202a4bc2db3e17a417a402b0d18a05c5f27af Mon Sep 17 00:00:00 2001 From: Marcel Partap Date: Mon, 11 Jun 2012 22:00:12 +0200 Subject: [PATCH 6/6] Put fullscreen startup where resizer is ready to be hidden --- src/guake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/guake b/src/guake index f16bff68..5b11be0a 100644 --- a/src/guake +++ b/src/guake @@ -578,9 +578,6 @@ class Guake(SimpleGladeApp): # holds fullscreen status self.is_fullscreen = False - if self.client.get_bool(KEY('/general/start_fullscreen')): - self.fullscreen() - # holds the timestamp of the losefocus event self.losefocus_time = 0 @@ -637,6 +634,9 @@ class Guake(SimpleGladeApp): label = gtk.accelerator_get_label(keyval, mask) filename = pixmapfile('guake-notification.png') + if self.client.get_bool(KEY('/general/start_fullscreen')): + self.fullscreen() + if not self.hotkeys.bind(key, self.show_hide): notification = pynotify.Notification( _('Guake!'),