@@ -49,6 +49,7 @@ typedef enum {
4949 PAGER_WM_MARCO ,
5050 PAGER_WM_METACITY ,
5151 PAGER_WM_COMPIZ ,
52+ PAGER_WM_I3 ,
5253 PAGER_WM_UNKNOWN
5354} PagerWM ;
5455
@@ -74,6 +75,7 @@ typedef struct {
7475 GtkWidget * num_workspaces_spin ;
7576 GtkWidget * workspaces_tree ;
7677 GtkListStore * workspaces_store ;
78+ GtkCellRenderer * cell ;
7779
7880 GtkOrientation orientation ;
7981 int n_rows ; /* for vertical layout this is cols */
@@ -99,6 +101,8 @@ static void pager_update(PagerData* pager)
99101 wnck_pager_set_display_mode (WNCK_PAGER (pager -> pager ), pager -> display_mode );
100102 else if (pager -> wm == PAGER_WM_METACITY )
101103 wnck_pager_set_display_mode (WNCK_PAGER (pager -> pager ), pager -> display_mode );
104+ else if (pager -> wm == PAGER_WM_I3 )
105+ wnck_pager_set_display_mode (WNCK_PAGER (pager -> pager ), pager -> display_mode );
102106 else
103107 wnck_pager_set_display_mode (WNCK_PAGER (pager -> pager ), WNCK_PAGER_DISPLAY_CONTENT );
104108}
@@ -116,6 +120,7 @@ static void update_properties_for_wm(PagerData* pager)
116120 gtk_widget_show (pager -> workspace_names_scroll );
117121 if (pager -> display_workspaces_toggle )
118122 gtk_widget_show (pager -> display_workspaces_toggle );
123+ g_object_set (pager -> cell , "editable" , TRUE, NULL );
119124 break ;
120125 case PAGER_WM_METACITY :
121126 if (pager -> workspaces_frame )
@@ -126,6 +131,20 @@ static void update_properties_for_wm(PagerData* pager)
126131 gtk_widget_show (pager -> workspace_names_scroll );
127132 if (pager -> display_workspaces_toggle )
128133 gtk_widget_show (pager -> display_workspaces_toggle );
134+ g_object_set (pager -> cell , "editable" , TRUE, NULL );
135+ break ;
136+ case PAGER_WM_I3 :
137+ if (pager -> workspaces_frame )
138+ gtk_widget_show (pager -> workspaces_frame );
139+ if (pager -> num_workspaces_spin )
140+ gtk_widget_set_sensitive (pager -> num_workspaces_spin , FALSE);
141+ if (pager -> workspace_names_label )
142+ gtk_widget_hide (pager -> workspace_names_label );
143+ if (pager -> workspace_names_scroll )
144+ gtk_widget_hide (pager -> workspace_names_scroll );
145+ if (pager -> display_workspaces_toggle )
146+ gtk_widget_show (pager -> display_workspaces_toggle );
147+ g_object_set (pager -> cell , "editable" , FALSE, NULL );
129148 break ;
130149 case PAGER_WM_COMPIZ :
131150 if (pager -> workspaces_frame )
@@ -136,6 +155,7 @@ static void update_properties_for_wm(PagerData* pager)
136155 gtk_widget_hide (pager -> workspace_names_scroll );
137156 if (pager -> display_workspaces_toggle )
138157 gtk_widget_hide (pager -> display_workspaces_toggle );
158+ g_object_set (pager -> cell , "editable" , FALSE, NULL );
139159 break ;
140160 case PAGER_WM_UNKNOWN :
141161 if (pager -> workspaces_frame )
@@ -164,6 +184,8 @@ static void window_manager_changed(WnckScreen* screen, PagerData* pager)
164184 pager -> wm = PAGER_WM_MARCO ;
165185 else if (strcmp (wm_name , "Metacity" ) == 0 )
166186 pager -> wm = PAGER_WM_METACITY ;
187+ else if (strcmp (wm_name , "i3" ) == 0 )
188+ pager -> wm = PAGER_WM_I3 ;
167189 else if (strcmp (wm_name , "Compiz" ) == 0 )
168190 pager -> wm = PAGER_WM_COMPIZ ;
169191 else
@@ -926,6 +948,7 @@ static void setup_dialog(GtkBuilder* builder, PagerData* pager)
926948 g_object_unref (pager -> workspaces_store );
927949
928950 cell = g_object_new (GTK_TYPE_CELL_RENDERER_TEXT , "editable" , TRUE, NULL );
951+ pager -> cell = cell ;
929952 column = gtk_tree_view_column_new_with_attributes ("workspace" , cell , "text" , 0 , NULL );
930953 gtk_tree_view_append_column (GTK_TREE_VIEW (pager -> workspaces_tree ), column );
931954 g_signal_connect (cell , "edited" , (GCallback ) workspace_name_edited , pager );
0 commit comments