gtkhtml r8806 - in branches/mbarnes-composer: components/html-editor gtkhtml po



Author: mbarnes
Date: Tue Apr  1 20:44:31 2008
New Revision: 8806
URL: http://svn.gnome.org/viewvc/gtkhtml?rev=8806&view=rev

Log:
Merge revisions 8791:8804 from trunk.


Modified:
   branches/mbarnes-composer/components/html-editor/ChangeLog
   branches/mbarnes-composer/components/html-editor/paragraph-style.c
   branches/mbarnes-composer/components/html-editor/paragraph-style.h
   branches/mbarnes-composer/components/html-editor/paragraph.c
   branches/mbarnes-composer/gtkhtml/ChangeLog
   branches/mbarnes-composer/gtkhtml/gtkhtml-private.h
   branches/mbarnes-composer/gtkhtml/gtkhtml.c
   branches/mbarnes-composer/po/ChangeLog
   branches/mbarnes-composer/po/es.po
   branches/mbarnes-composer/po/nn.po

Modified: branches/mbarnes-composer/components/html-editor/paragraph-style.c
==============================================================================
--- branches/mbarnes-composer/components/html-editor/paragraph-style.c	(original)
+++ branches/mbarnes-composer/components/html-editor/paragraph-style.c	Tue Apr  1 20:44:31 2008
@@ -215,3 +215,12 @@
 			GTK_TREE_MODEL (store), &iter);
 	}
 }
+
+void
+paragraph_style_combobox_disconnect_html (GtkHTMLControlData *cd, GtkWidget *combo_box)
+{
+	g_return_if_fail (cd != NULL);
+	g_return_if_fail (cd->html != NULL);
+
+	g_signal_handlers_disconnect_by_func (cd->html, G_CALLBACK (current_paragraph_style_changed_cb), combo_box);
+}

Modified: branches/mbarnes-composer/components/html-editor/paragraph-style.h
==============================================================================
--- branches/mbarnes-composer/components/html-editor/paragraph-style.h	(original)
+++ branches/mbarnes-composer/components/html-editor/paragraph-style.h	Tue Apr  1 20:44:31 2008
@@ -27,5 +27,6 @@
 
 GtkWidget *	paragraph_style_combo_box_new	(GtkHTMLControlData *cd);
 void		paragraph_style_update_store	(GtkHTMLControlData *cd);
+void		paragraph_style_combobox_disconnect_html (GtkHTMLControlData *cd, GtkWidget *combo_box);
 
 #endif /* _PARAGRAPH_STYLE_H */

Modified: branches/mbarnes-composer/components/html-editor/paragraph.c
==============================================================================
--- branches/mbarnes-composer/components/html-editor/paragraph.c	(original)
+++ branches/mbarnes-composer/components/html-editor/paragraph.c	Tue Apr  1 20:44:31 2008
@@ -101,5 +101,8 @@
 void
 paragraph_close_cb (GtkHTMLControlData *cd, gpointer get_data)
 {
+	g_return_if_fail (get_data != NULL);
+
+	paragraph_style_combobox_disconnect_html (cd, ((GtkHTMLEditParagraphProperties *)get_data)->style_option);
 	g_free (get_data);
 }

Modified: branches/mbarnes-composer/gtkhtml/gtkhtml-private.h
==============================================================================
--- branches/mbarnes-composer/gtkhtml/gtkhtml-private.h	(original)
+++ branches/mbarnes-composer/gtkhtml/gtkhtml-private.h	Tue Apr  1 20:44:31 2008
@@ -76,6 +76,8 @@
 	HTMLObject *resize_object;
 
 	gboolean in_url_test_mode;
+
+	gboolean in_key_binding;
 };
 
 void  gtk_html_private_calc_scrollbars  (GtkHTML                *html,

Modified: branches/mbarnes-composer/gtkhtml/gtkhtml.c
==============================================================================
--- branches/mbarnes-composer/gtkhtml/gtkhtml.c	(original)
+++ branches/mbarnes-composer/gtkhtml/gtkhtml.c	Tue Apr  1 20:44:31 2008
@@ -1033,8 +1033,11 @@
 	if (html_class->use_emacs_bindings && html_class->emacs_bindings && !html->binding_handled)
 		gtk_binding_set_activate (html_class->emacs_bindings, event->keyval, event->state, GTK_OBJECT (widget));
 
-	if (!html->binding_handled)
+	if (!html->binding_handled) {
+		html->priv->in_key_binding = TRUE;
 		retval = GTK_WIDGET_CLASS (parent_class)->key_press_event (widget, event);
+		html->priv->in_key_binding = FALSE;
+	}
 
 	retval = retval || html->binding_handled;
 	update = html->priv->update_styles;
@@ -3300,6 +3303,7 @@
 	html->priv->in_object_resize = FALSE;
 	html->priv->resize_cursor = gdk_cursor_new (GDK_BOTTOM_RIGHT_CORNER);
 	html->priv->in_url_test_mode = FALSE;
+	html->priv->in_key_binding = FALSE;
 
 	/* IM Context */
 	html->priv->im_context = gtk_im_multicontext_new ();
@@ -4829,15 +4833,25 @@
 	/* printf ("command %d %s\n", com_type, get_value_nick (com_type)); */
 	html->binding_handled = TRUE;
 
+	#define ensure_key_binding_not_editable() \
+		if (html->priv->in_key_binding && html_engine_get_editable (e)) { \
+			html->binding_handled = FALSE; \
+			rv = FALSE; \
+			break; \
+		}
+
 	/* non-editable + editable commands */
 	switch (com_type) {
 	case GTK_HTML_COMMAND_ZOOM_IN:
+		ensure_key_binding_not_editable ();
 		gtk_html_zoom_in (html);
 		break;
 	case GTK_HTML_COMMAND_ZOOM_OUT:
+		ensure_key_binding_not_editable ();
 		gtk_html_zoom_out (html);
 		break;
 	case GTK_HTML_COMMAND_ZOOM_RESET:
+		ensure_key_binding_not_editable ();
 		gtk_html_zoom_reset (html);
 		break;
 	case GTK_HTML_COMMAND_SEARCH_INCREMENTAL_FORWARD:
@@ -4913,6 +4927,8 @@
 		html->binding_handled = FALSE;
 	}
 
+	#undef ensure_key_binding_not_editable
+
 	if (!html_engine_get_editable (e) || html->binding_handled)
 		return rv;
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]