| 1894 |
1894 |
| 1895 void gnt_wm_window_close(GntWM *wm, GntWidget *widget) |
1895 void gnt_wm_window_close(GntWM *wm, GntWidget *widget) |
| 1896 { |
1896 { |
| 1897 GntWS *s; |
1897 GntWS *s; |
| 1898 int pos; |
1898 int pos; |
| |
1899 gboolean transient = !!GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_TRANSIENT); |
| 1899 |
1900 |
| 1900 s = gnt_wm_widget_find_workspace(wm, widget); |
1901 s = gnt_wm_widget_find_workspace(wm, widget); |
| 1901 |
1902 |
| 1902 if (g_hash_table_lookup(wm->nodes, widget) == NULL) |
1903 if (g_hash_table_lookup(wm->nodes, widget) == NULL) |
| 1903 return; |
1904 return; |
| 1917 s->ordered = g_list_remove(s->ordered, widget); |
1918 s->ordered = g_list_remove(s->ordered, widget); |
| 1918 |
1919 |
| 1919 if (s->ordered && wm->cws == s) |
1920 if (s->ordered && wm->cws == s) |
| 1920 gnt_wm_raise_window(wm, s->ordered->data); |
1921 gnt_wm_raise_window(wm, s->ordered->data); |
| 1921 } |
1922 } |
| |
1923 } else if (transient && wm->cws && wm->cws->ordered) { |
| |
1924 gnt_wm_update_window(wm, wm->cws->ordered->data); |
| 1922 } |
1925 } |
| 1923 |
1926 |
| 1924 gnt_ws_draw_taskbar(wm->cws, FALSE); |
1927 gnt_ws_draw_taskbar(wm->cws, FALSE); |
| 1925 update_screen(wm); |
1928 update_screen(wm); |
| 1926 } |
1929 } |