Changeset 3543


Ignore:
Timestamp:
11/30/07 18:17:53 (5 years ago)
Author:
chris
Message:
  • src/today-task-manager.c: (today_task_manager_populate_tasks), (set_focus_cb), (page_shown), (page_hidden), (today_task_manager_notify_visible_cb), (today_task_manager_visibility_notify_event_cb), (today_task_manager_unmap_cb), (today_task_manager_page_create):
  • src/today.h: Grey out kill/jump-to/killall buttons where appropriate, fix spurious warnings on app exit
Location:
trunk/src/target/OM-2007.2/applications/openmoko-today2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog

    r3541 r3543  
     12007-11-30  Chris Lord  <chris@openedhand.com> 
     2 
     3        * src/today-task-manager.c: (today_task_manager_populate_tasks), 
     4        (set_focus_cb), (page_shown), (page_hidden), 
     5        (today_task_manager_notify_visible_cb), 
     6        (today_task_manager_visibility_notify_event_cb), 
     7        (today_task_manager_unmap_cb), (today_task_manager_page_create): 
     8        * src/today.h: 
     9        Grey out kill/jump-to/killall buttons where appropriate, fix spurious 
     10        warnings on app exit 
     11 
    1122007-11-30  Chris Lord  <chris@openedhand.com> 
    213 
  • trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-task-manager.c

    r3494 r3543  
    344344        today_task_manager_free_tasks (data); 
    345345         
     346        /* Return if our main window has gone (e.g. on quit) */ 
     347        if ((!data->window) || (!data->window->window)) return; 
     348         
    346349        /* Retrieve list of app windows from root window */ 
    347350        display = gtk_widget_get_display (data->tasks_table); 
     
    381384                GdkWindow *window; 
    382385 
    383                 if (GDK_WINDOW_XID (current) == windows[i]) continue; 
     386                if (current && GDK_WINDOW_XID (current) == windows[i]) continue; 
    384387                if (GDK_WINDOW_XID (data->window->window) == windows[i]) 
    385388                        continue; 
     
    428431                gtk_widget_show (task_tile); 
    429432        } 
    430         g_object_unref (current); 
    431  
    432         /* If no windows were found, insert an insensitive "No tasks" item */ 
    433         if (nitems == 0) { 
    434                 GtkWidget *task_tile; 
    435                  
    436                 task_tile = taku_icon_tile_new (); 
     433        if (current) g_object_unref (current); 
     434 
     435        /* If no windows were found, insert an insensitive "No tasks" item */ 
     436        if (nitems == 0) { 
     437                GtkWidget *task_tile; 
     438                 
     439                task_tile = taku_icon_tile_new (); 
    437440                taku_icon_tile_set_primary (TAKU_ICON_TILE (task_tile), 
    438441                        _("No active tasks")); 
    439442                 
    440                 gtk_widget_set_sensitive (task_tile, FALSE); 
     443                gtk_widget_set_sensitive (task_tile, FALSE); 
    441444 
    442445                gtk_container_add (GTK_CONTAINER (data->tasks_table), 
    443446                        task_tile); 
    444447                gtk_widget_show (task_tile); 
    445         } 
    446  
    447         /* Cleanup */ 
    448         XFree (windows); 
     448                 
     449                gtk_widget_set_sensitive ( 
     450                        GTK_WIDGET (data->killall_button), FALSE); 
     451        } else { 
     452                gtk_widget_set_sensitive ( 
     453                        GTK_WIDGET (data->killall_button), TRUE); 
     454        } 
     455 
     456        /* Cleanup */ 
     457        XFree (windows); 
     458} 
     459 
     460static void 
     461set_focus_cb (GtkWindow *window, GtkWidget *widget, TodayData *data) 
     462{ 
     463        gtk_widget_set_sensitive (data->kill_button, TAKU_IS_TILE (widget)); 
     464        gtk_widget_set_sensitive (data->switch_button, TAKU_IS_TILE (widget)); 
     465} 
     466 
     467static void 
     468page_shown (TodayData *data) 
     469{ 
     470        today_task_manager_populate_tasks (data); 
     471        g_signal_connect (data->window, "set-focus", 
     472                G_CALLBACK (set_focus_cb), data); 
     473} 
     474 
     475static void 
     476page_hidden (TodayData *data) 
     477{ 
     478        today_task_manager_free_tasks (data); 
     479        g_signal_handlers_disconnect_by_func (data->window, set_focus_cb, data); 
    449480} 
    450481 
     
    456487        if ((!hidden) && (!GTK_WIDGET_VISIBLE (gobject))) { 
    457488                hidden = TRUE; 
    458                 today_task_manager_free_tasks (data); 
     489                page_hidden (data); 
    459490        } 
    460491} 
     
    468499             (event->state == GDK_VISIBILITY_UNOBSCURED)) && (hidden)) { 
    469500                hidden = FALSE; 
    470                 today_task_manager_populate_tasks (data); 
     501                page_shown (data); 
    471502        } else if ((event->state == GDK_VISIBILITY_FULLY_OBSCURED) && 
    472503                   (!hidden)) { 
    473504                hidden = TRUE; 
    474                 today_task_manager_free_tasks (data); 
     505                page_hidden (data); 
    475506        } 
    476507         
     
    483514        if (!hidden) { 
    484515                hidden = TRUE; 
    485                 today_task_manager_free_tasks (data); 
     516                page_hidden (data); 
    486517        } 
    487518} 
     
    716747{ 
    717748        GtkWidget *vbox, *toolbar, *viewport, *scroll; 
    718         GtkToolItem *button; 
    719749         
    720750        vbox = gtk_vbox_new (FALSE, 0); 
     
    725755 
    726756        /* Kill all apps button */ 
    727         button = gtk_tool_button_new_from_stock (MOKO_STOCK_FOLDER_DELETE); 
    728         gtk_tool_item_set_expand (button, TRUE); 
    729         gtk_toolbar_insert (GTK_TOOLBAR (toolbar), button, 0); 
     757        data->kill_button = gtk_tool_button_new_from_stock ( 
     758                MOKO_STOCK_FOLDER_DELETE); 
     759        gtk_tool_item_set_expand (data->kill_button, TRUE); 
     760        gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data->kill_button, 0); 
    730761        gtk_toolbar_insert (GTK_TOOLBAR (toolbar), 
    731762                gtk_separator_tool_item_new (), 0); 
    732         g_signal_connect (G_OBJECT (button), "clicked", 
     763        g_signal_connect (data->kill_button, "clicked", 
    733764                G_CALLBACK (today_task_manager_killall_clicked_cb), data); 
    734765 
    735766        /* Switch to app button */ 
    736         button = gtk_tool_button_new_from_stock (GTK_STOCK_JUMP_TO); 
    737         gtk_tool_item_set_expand (button, TRUE); 
    738         gtk_toolbar_insert (GTK_TOOLBAR (toolbar), button, 0); 
     767        data->switch_button = gtk_tool_button_new_from_stock (GTK_STOCK_JUMP_TO); 
     768        gtk_tool_item_set_expand (data->switch_button, TRUE); 
     769        gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data->switch_button, 0); 
    739770        gtk_toolbar_insert (GTK_TOOLBAR (toolbar), 
    740771                gtk_separator_tool_item_new (), 0); 
    741         g_signal_connect (G_OBJECT (button), "clicked", 
     772        g_signal_connect (data->switch_button, "clicked", 
    742773                G_CALLBACK (today_task_manager_raise_clicked_cb), data); 
    743774 
    744775        /* Kill app button */ 
    745         button = gtk_tool_button_new_from_stock (GTK_STOCK_DELETE); 
    746         gtk_tool_item_set_expand (button, TRUE); 
    747         gtk_toolbar_insert (GTK_TOOLBAR (toolbar), button, 0); 
    748         g_signal_connect (G_OBJECT (button), "clicked", 
     776        data->killall_button = gtk_tool_button_new_from_stock (GTK_STOCK_DELETE); 
     777        gtk_tool_item_set_expand (data->killall_button, TRUE); 
     778        gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data->killall_button, 0); 
     779        g_signal_connect (data->killall_button, "clicked", 
    749780                G_CALLBACK (today_task_manager_kill_clicked_cb), data); 
    750781 
  • trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today.h

    r3476 r3543  
    6161        GdkWindow *root_window; 
    6262        GtkWidget *tasks_table; 
     63        GtkToolItem *kill_button; 
     64        GtkToolItem *killall_button; 
     65        GtkToolItem *switch_button; 
    6366} TodayData; 
    6467#endif 
Note: See TracChangeset for help on using the changeset viewer.