rendered paste bodyIndex: ChangeLog
===================================================================
RCS file: /cvs/gnome/gedit/ChangeLog,v
retrieving revision 1.799
diff -u -p -r1.799 ChangeLog
--- ChangeLog 5 Aug 2006 07:43:10 -0000 1.799
+++ ChangeLog 5 Aug 2006 08:30:56 -0000
@@ -1,5 +1,12 @@
2006-08-05 Jesse van den Kieboom <jesse@icecrew.nl>
+ * gedit/gedit-window.c: added calling update_ui when editability
+ changes
+ * plugins/snippets/snippets/SnippetController.py: added honoring the
+ editability of the buffer
+
+2006-08-05 Jesse van den Kieboom <jesse@icecrew.nl>
+
* plugins/filebrowser/gedit-file-browser-plugin.c:
Fixed restoring of remote location (problem introduced by previous
Index: gedit/gedit-window.c
===================================================================
RCS file: /cvs/gnome/gedit/gedit/gedit-window.c,v
retrieving revision 1.30
diff -u -p -r1.30 gedit-window.c
--- gedit/gedit-window.c 18 Jun 2006 09:05:20 -0000 1.30
+++ gedit/gedit-window.c 5 Aug 2006 08:30:56 -0000
@@ -2268,6 +2268,14 @@ doc_saved (GeditDocument *doc,
}
static void
+editable_changed (GeditView *view,
+ GParamSpec *arg1,
+ GeditWindow *window)
+{
+ gedit_plugins_engine_update_plugins_ui (window, FALSE);
+}
+
+static void
notebook_tab_added (GeditNotebook *notebook,
GeditTab *tab,
GeditWindow *window)
@@ -2344,6 +2352,10 @@ notebook_tab_added (GeditNotebook *noteb
"toggle_overwrite",
G_CALLBACK (update_overwrite_mode_statusbar),
window);
+ g_signal_connect (view,
+ "notify::editable",
+ G_CALLBACK (editable_changed),
+ window);
update_documents_list_menu (window);
@@ -2427,6 +2439,9 @@ notebook_tab_removed (GeditNotebook *not
window);
g_signal_handlers_disconnect_by_func (view,
G_CALLBACK (update_overwrite_mode_statusbar),
+ window);
+ g_signal_handlers_disconnect_by_func (view,
+ G_CALLBACK (editable_changed),
window);
g_signal_handlers_disconnect_by_func (view,
G_CALLBACK (drag_data_received_cb),
Index: plugins/snippets/snippets/SnippetController.py
===================================================================
RCS file: /cvs/gnome/gedit/plugins/snippets/snippets/SnippetController.py,v
retrieving revision 1.11
diff -u -p -r1.11 SnippetController.py
--- plugins/snippets/snippets/SnippetController.py 24 Jul 2006 20:31:44 -0000 1.11
+++ plugins/snippets/snippets/SnippetController.py 5 Aug 2006 08:30:56 -0000
@@ -68,16 +68,14 @@ class SnippetController:
# all currently active snippets and disconnect all current signals. So
# self.set_view(None) will effectively remove all the control from the
# current view
- def set_view(self, view):
- if view == self.view:
- return
-
+ def _set_view(self, view):
if self.view:
buf = self.view.get_buffer()
self.disconnect_signal(self.view, 'key-press-event')
self.disconnect_signal(self.view, 'destroy')
self.disconnect_signal(buf, 'notify::language')
+ self.disconnect_signal(self.view, 'notify::editable')
self.disconnect_signal(buf, 'changed')
self.disconnect_signal(buf, 'cursor-moved')
@@ -92,14 +90,25 @@ class SnippetController:
self.signal_ids['destroy'] = view.connect('destroy', \
self.on_view_destroy)
- self.signal_ids['key-press-event'] = view.connect( \
- 'key_press_event', self.on_view_key_press)
+
+ if view.get_editable():
+ self.signal_ids['key-press-event'] = view.connect( \
+ 'key_press_event', self.on_view_key_press)
+
self.signal_ids['notify::language'] = buf.connect( \
'notify::language', self.on_notify_language)
+ self.signal_ids['notify::editable'] = view.connect( \
+ 'notify::editable', self.on_notify_editable)
self.update_language()
elif self.language_id != 0:
SnippetsLibrary().unref(self.language_id)
+
+ def set_view(self, view):
+ if view == self.view:
+ return
+
+ self._set_view(view)
# Call this whenever the language in the view changes. This makes sure that
# the correct language is used when finding snippets
@@ -123,6 +132,9 @@ class SnippetController:
SnippetsLibrary().ref(self.language_id)
def accelerator_activate(self, keyval, mod):
+ if not self.view or not self.view.get_editable():
+ return
+
accelerator = gtk.accelerator_name(keyval, mod)
snippets = SnippetsLibrary().from_accelerator(accelerator, \
self.language_id)
@@ -606,7 +618,10 @@ class SnippetController:
def on_notify_language(self, buf, spec):
self.update_language()
-
+
+ def on_notify_editable(self, view, spec):
+ self._set_view(view)
+
def on_view_key_press(self, view, event):
library = SnippetsLibrary()