Re: [Sugar-devel] [PATCH v2 sugar] Shutdown and Logout menu items should activate the buzzy cursor (SL#2151)
On 26/09/2010, at 7:29 AM, Anurag Chowdhury wrote: Shutdown (and Logout) menu items should activate the buzzy cursor (or provide some other visual feedback, perhaps dimming/locking the UI from use). buzzy should be busy. The bug SL#2151 was already updated with the new summary Shutdown and Logout menu items should activate the busy cursor (or provide some other visual feedback). Your text in the commit message was not wrapped within 80 column view, as can be seen when the patch is viewed here: http://patchwork.sugarlabs.org/patch/281/ Please wrap this text next time you update the commit message. --- src/jarabe/view/buddymenu.py | 42 ++ 1 files changed, 34 insertions(+), 8 deletions(-) v1 was Reviewed-By: James Cameron quozl at laptop.org v1-v2: Set the cursor in its appropriate window diff --git a/src/jarabe/view/buddymenu.py b/src/jarabe/view/buddymenu.py index 0ba6cc1..7135d9e 100644 --- a/src/jarabe/view/buddymenu.py +++ b/src/jarabe/view/buddymenu.py @@ -21,6 +21,8 @@ from gettext import gettext as _ import gtk import gconf import dbus +import jarabe +import glib from sugar.graphics.palette import Palette from sugar.graphics.menuitem import MenuItem @@ -98,16 +100,40 @@ class BuddyMenu(Palette): item.show() def __logout_activate_cb(self, menu_item): -session_manager = get_session_manager() -session_manager.logout() +def update_cur(window): +window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) +return False +def shut(self, menu_item): +session_manager = get_session_manager() +session_manager.logout() +window = jarabe.desktop.homewindow.get_instance() +glib.timeout_add(3, update_cur, window) Your solution defers the cursor change to several milliseconds in the future, and calls the session manager method immediately as part of a single-shot recursion into gtk.main(). How did you determine that three (3) milliseconds would be the appropriate delay? +glib.idle_add(shut,self,menu_item) Adding shut() function to the idle queue and then immediately calling gtk.main() would cause the shut() function to be called almost immediately. Why not call the shut() function at this point instead? +gtk.main() Can you achieve the correct result without recursion back into gtk.main()? Calling gtk.main() in a callback that gtk.main() has already called does not seem to be a good practice. def __reboot_activate_cb(self, menu_item): -session_manager = get_session_manager() -session_manager.reboot() - -def __shutdown_activate_cb(self, menu_item): -session_manager = get_session_manager() -session_manager.shutdown() +def update_cur(window): +window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) +return False +def shut(self, menu_item): +session_manager = get_session_manager() +session_manager.reboot() These two functions are repetitive. The same code with very little difference is used in two, no three, places. +window = jarabe.desktop.homewindow.get_instance() +glib.timeout_add(3, update_cur, window) +glib.idle_add(shut,self,menu_item) +gtk.main() + +def __shutdown_activate_cb(self, menu_item): +def update_cur(window): +window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) +return False +def shut(self, menu_item): +session_manager = get_session_manager() +session_manager.shutdown() +window = jarabe.desktop.homewindow.get_instance() +glib.timeout_add(3, update_cur, window) +glib.idle_add(shut,self,menu_item) +gtk.main() def __controlpanel_activate_cb(self, menu_item): panel = ControlPanel() -- 1.7.2.2 ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel -- James Cameron System Test Coordinator One Laptop per Child ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] [PATCH v2 sugar] Shutdown and Logout menu items should activate the buzzy cursor (SL#2151)
On Sat, Sep 25, 2010 at 23:29, Anurag Chowdhury anu...@seeta.in wrote: Shutdown (and Logout) menu items should activate the buzzy cursor (or provide some other visual feedback, perhaps dimming/locking the UI from use). Hi Anurag, could you explain what you have changed since the last revision and why? With the information you have made available I would have to guess too much. Thanks, Tomeu --- src/jarabe/view/buddymenu.py | 42 ++ 1 files changed, 34 insertions(+), 8 deletions(-) v1 was Reviewed-By: James Cameron quozl at laptop.org v1-v2: Set the cursor in its appropriate window diff --git a/src/jarabe/view/buddymenu.py b/src/jarabe/view/buddymenu.py index 0ba6cc1..7135d9e 100644 --- a/src/jarabe/view/buddymenu.py +++ b/src/jarabe/view/buddymenu.py @@ -21,6 +21,8 @@ from gettext import gettext as _ import gtk import gconf import dbus +import jarabe +import glib from sugar.graphics.palette import Palette from sugar.graphics.menuitem import MenuItem @@ -98,16 +100,40 @@ class BuddyMenu(Palette): item.show() def __logout_activate_cb(self, menu_item): - session_manager = get_session_manager() - session_manager.logout() + def update_cur(window): + window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) + return False + def shut(self, menu_item): + session_manager = get_session_manager() + session_manager.logout() + window = jarabe.desktop.homewindow.get_instance() + glib.timeout_add(3, update_cur, window) + glib.idle_add(shut,self,menu_item) + gtk.main() def __reboot_activate_cb(self, menu_item): - session_manager = get_session_manager() - session_manager.reboot() - - def __shutdown_activate_cb(self, menu_item): - session_manager = get_session_manager() - session_manager.shutdown() + def update_cur(window): + window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) + return False + def shut(self, menu_item): + session_manager = get_session_manager() + session_manager.reboot() + window = jarabe.desktop.homewindow.get_instance() + glib.timeout_add(3, update_cur, window) + glib.idle_add(shut,self,menu_item) + gtk.main() + + def __shutdown_activate_cb(self, menu_item): + def update_cur(window): + window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) + return False + def shut(self, menu_item): + session_manager = get_session_manager() + session_manager.shutdown() + window = jarabe.desktop.homewindow.get_instance() + glib.timeout_add(3, update_cur, window) + glib.idle_add(shut,self,menu_item) + gtk.main() def __controlpanel_activate_cb(self, menu_item): panel = ControlPanel() -- 1.7.2.2 ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] [PATCH v2 sugar] Shutdown and Logout menu items should activate the buzzy cursor (SL#2151)
Hello Tomeu , I actually worked upon your suggestion quoted in http://lists.sugarlabs.org/archive/sugar-devel/2010-September/026741.html to solve this bug. Actually I changed the cursor in homewindow this time and used glib.idle_add( ) to break out of the infinite gtk.main() loop to shutdown the system when the processor is idle and untill that time it will show a busy cursor which i think will be the proper method to shutdown while providing a visual confirmation of the process. Please let me know if adding this information in description would be sufficient. If required, I can add more information.Also I will resubmit a new patch which will be more descriptive than this one. Regards, Anurag On Mon, Sep 27, 2010 at 7:21 PM, Tomeu Vizoso to...@sugarlabs.org wrote: On Sat, Sep 25, 2010 at 23:29, Anurag Chowdhury anu...@seeta.in wrote: Shutdown (and Logout) menu items should activate the buzzy cursor (or provide some other visual feedback, perhaps dimming/locking the UI from use). Hi Anurag, could you explain what you have changed since the last revision and why? With the information you have made available I would have to guess too much. Thanks, Tomeu --- src/jarabe/view/buddymenu.py | 42 ++ 1 files changed, 34 insertions(+), 8 deletions(-) v1 was Reviewed-By: James Cameron quozl at laptop.org v1-v2: Set the cursor in its appropriate window diff --git a/src/jarabe/view/buddymenu.py b/src/jarabe/view/buddymenu.py index 0ba6cc1..7135d9e 100644 --- a/src/jarabe/view/buddymenu.py +++ b/src/jarabe/view/buddymenu.py @@ -21,6 +21,8 @@ from gettext import gettext as _ import gtk import gconf import dbus +import jarabe +import glib from sugar.graphics.palette import Palette from sugar.graphics.menuitem import MenuItem @@ -98,16 +100,40 @@ class BuddyMenu(Palette): item.show() def __logout_activate_cb(self, menu_item): -session_manager = get_session_manager() -session_manager.logout() +def update_cur(window): + window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) +return False +def shut(self, menu_item): +session_manager = get_session_manager() +session_manager.logout() +window = jarabe.desktop.homewindow.get_instance() +glib.timeout_add(3, update_cur, window) +glib.idle_add(shut,self,menu_item) +gtk.main() def __reboot_activate_cb(self, menu_item): -session_manager = get_session_manager() -session_manager.reboot() - -def __shutdown_activate_cb(self, menu_item): -session_manager = get_session_manager() -session_manager.shutdown() +def update_cur(window): + window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) +return False +def shut(self, menu_item): +session_manager = get_session_manager() +session_manager.reboot() +window = jarabe.desktop.homewindow.get_instance() +glib.timeout_add(3, update_cur, window) +glib.idle_add(shut,self,menu_item) +gtk.main() + +def __shutdown_activate_cb(self, menu_item): +def update_cur(window): + window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) +return False +def shut(self, menu_item): +session_manager = get_session_manager() +session_manager.shutdown() +window = jarabe.desktop.homewindow.get_instance() +glib.timeout_add(3, update_cur, window) +glib.idle_add(shut,self,menu_item) +gtk.main() def __controlpanel_activate_cb(self, menu_item): panel = ControlPanel() -- 1.7.2.2 ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel