@@ -49,6 +49,7 @@ typedef enum {
49
49
PAGER_WM_MARCO ,
50
50
PAGER_WM_METACITY ,
51
51
PAGER_WM_COMPIZ ,
52
+ PAGER_WM_I3 ,
52
53
PAGER_WM_UNKNOWN
53
54
} PagerWM ;
54
55
@@ -74,6 +75,7 @@ typedef struct {
74
75
GtkWidget * num_workspaces_spin ;
75
76
GtkWidget * workspaces_tree ;
76
77
GtkListStore * workspaces_store ;
78
+ GtkCellRenderer * cell ;
77
79
78
80
GtkOrientation orientation ;
79
81
int n_rows ; /* for vertical layout this is cols */
@@ -99,6 +101,8 @@ static void pager_update(PagerData* pager)
99
101
wnck_pager_set_display_mode (WNCK_PAGER (pager -> pager ), pager -> display_mode );
100
102
else if (pager -> wm == PAGER_WM_METACITY )
101
103
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 );
102
106
else
103
107
wnck_pager_set_display_mode (WNCK_PAGER (pager -> pager ), WNCK_PAGER_DISPLAY_CONTENT );
104
108
}
@@ -116,6 +120,7 @@ static void update_properties_for_wm(PagerData* pager)
116
120
gtk_widget_show (pager -> workspace_names_scroll );
117
121
if (pager -> display_workspaces_toggle )
118
122
gtk_widget_show (pager -> display_workspaces_toggle );
123
+ g_object_set (pager -> cell , "editable" , TRUE, NULL );
119
124
break ;
120
125
case PAGER_WM_METACITY :
121
126
if (pager -> workspaces_frame )
@@ -126,6 +131,20 @@ static void update_properties_for_wm(PagerData* pager)
126
131
gtk_widget_show (pager -> workspace_names_scroll );
127
132
if (pager -> display_workspaces_toggle )
128
133
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 );
129
148
break ;
130
149
case PAGER_WM_COMPIZ :
131
150
if (pager -> workspaces_frame )
@@ -136,6 +155,7 @@ static void update_properties_for_wm(PagerData* pager)
136
155
gtk_widget_hide (pager -> workspace_names_scroll );
137
156
if (pager -> display_workspaces_toggle )
138
157
gtk_widget_hide (pager -> display_workspaces_toggle );
158
+ g_object_set (pager -> cell , "editable" , FALSE, NULL );
139
159
break ;
140
160
case PAGER_WM_UNKNOWN :
141
161
if (pager -> workspaces_frame )
@@ -164,6 +184,8 @@ static void window_manager_changed(WnckScreen* screen, PagerData* pager)
164
184
pager -> wm = PAGER_WM_MARCO ;
165
185
else if (strcmp (wm_name , "Metacity" ) == 0 )
166
186
pager -> wm = PAGER_WM_METACITY ;
187
+ else if (strcmp (wm_name , "i3" ) == 0 )
188
+ pager -> wm = PAGER_WM_I3 ;
167
189
else if (strcmp (wm_name , "Compiz" ) == 0 )
168
190
pager -> wm = PAGER_WM_COMPIZ ;
169
191
else
@@ -926,6 +948,7 @@ static void setup_dialog(GtkBuilder* builder, PagerData* pager)
926
948
g_object_unref (pager -> workspaces_store );
927
949
928
950
cell = g_object_new (GTK_TYPE_CELL_RENDERER_TEXT , "editable" , TRUE, NULL );
951
+ pager -> cell = cell ;
929
952
column = gtk_tree_view_column_new_with_attributes ("workspace" , cell , "text" , 0 , NULL );
930
953
gtk_tree_view_append_column (GTK_TREE_VIEW (pager -> workspaces_tree ), column );
931
954
g_signal_connect (cell , "edited" , (GCallback ) workspace_name_edited , pager );
0 commit comments