gtk-css-engine r82 - in branches/bzr: . libccd/ccd src themes/gtk-css-test/gtk-2.0



Author: robsta
Date: Fri Sep  5 11:33:58 2008
New Revision: 82
URL: http://svn.gnome.org/viewvc/gtk-css-engine?rev=82&view=rev

Log:
Fix for using multiple attribute selectors.

Modified:
   branches/bzr/   (props changed)
   branches/bzr/libccd/ccd/ccd-parser.c
   branches/bzr/libccd/ccd/ccd-selector.c
   branches/bzr/libccd/ccd/ccd-selector.h
   branches/bzr/src/gce-node.c
   branches/bzr/themes/gtk-css-test/gtk-2.0/styles.css

Modified: branches/bzr/libccd/ccd/ccd-parser.c
==============================================================================
--- branches/bzr/libccd/ccd/ccd-parser.c	(original)
+++ branches/bzr/libccd/ccd/ccd-parser.c	Fri Sep  5 11:33:58 2008
@@ -91,9 +91,14 @@
 	case NO_ADD_SELECTOR:
 	default:
 		g_assert_not_reached ();
+		return NULL;
 	}
 
-	g_return_val_if_fail (selector, NULL);
+	if (cr_add_sel->next) {
+		ccd_selector_t *refinement;
+		refinement = walk_additional_selector (cr_add_sel->next);
+		ccd_selector_refine (selector, refinement);
+	}
 
 	return selector;
 }

Modified: branches/bzr/libccd/ccd/ccd-selector.c
==============================================================================
--- branches/bzr/libccd/ccd/ccd-selector.c	(original)
+++ branches/bzr/libccd/ccd/ccd-selector.c	Fri Sep  5 11:33:58 2008
@@ -528,12 +528,11 @@
  * Does it matter that the refinements order is reversed?
  */
 void
-ccd_selector_refine (ccd_selector_t *self,
-		     ccd_selector_t *selector)
+ccd_selector_refine (ccd_selector_t		*self,
+		     ccd_selector_t const	*selector)
 {
-	g_assert (self && selector);
+	g_assert (self && self->refinement == NULL && selector);
 
-	selector->refinement = self->refinement;
 	self->refinement = selector;
 
 	switch (selector->modality) {

Modified: branches/bzr/libccd/ccd/ccd-selector.h
==============================================================================
--- branches/bzr/libccd/ccd/ccd-selector.h	(original)
+++ branches/bzr/libccd/ccd/ccd-selector.h	Fri Sep  5 11:33:58 2008
@@ -55,7 +55,7 @@
 
 void ccd_selector_free	(ccd_selector_t *self);
 
-void		 ccd_selector_refine		(ccd_selector_t *self, ccd_selector_t *selector);
+void		 ccd_selector_refine		(ccd_selector_t *self, ccd_selector_t const *selector);
 ccd_selector_t * ccd_selector_append_child	(ccd_selector_t *self, ccd_selector_t *selector);
 ccd_selector_t * ccd_selector_append_descendant	(ccd_selector_t *self, ccd_selector_t *selector);
 

Modified: branches/bzr/src/gce-node.c
==============================================================================
--- branches/bzr/src/gce-node.c	(original)
+++ branches/bzr/src/gce-node.c	Fri Sep  5 11:33:58 2008
@@ -278,7 +278,7 @@
 		return NULL;
 	}
 
-	/* attributes provided in the drawing function take precedence */
+	/* Attributes provided in the drawing function take precedence. */
 	if (0 == strcmp ("shadow", name)) {
 		return g_strdup (node->shadow);
 	} else if (0 == strcmp ("orientation", name)) {
@@ -291,8 +291,7 @@
 		return g_strdup (node->gap);
 	}
 
-	/* now try to find an apropriate style property */
-
+	/* Now try to find an apropriate style property. */
 	param = gtk_widget_class_find_style_property (
 			GTK_WIDGET_CLASS (G_OBJECT_GET_CLASS (node->widget)),
 			name);
@@ -302,7 +301,12 @@
 		return _to_string (&property);
 	}
 
-	if (g_object_class_find_property (G_OBJECT_GET_CLASS (node->widget), name)) {
+	/* Next look for an apropriate gobject property. */
+	param = g_object_class_find_property (
+			G_OBJECT_GET_CLASS (node->widget),
+			name);
+	if (param) {
+		g_value_init (&property, param->value_type);
 		g_object_get_property (G_OBJECT (node->widget), name, &property);
 		return _to_string (&property);
 	}

Modified: branches/bzr/themes/gtk-css-test/gtk-2.0/styles.css
==============================================================================
--- branches/bzr/themes/gtk-css-test/gtk-2.0/styles.css	(original)
+++ branches/bzr/themes/gtk-css-test/gtk-2.0/styles.css	Fri Sep  5 11:33:58 2008
@@ -1,4 +1,4 @@
-/*
+
 arrow[orientation=up] {
 	background-image: url(arrow-up.png);
 }
@@ -101,17 +101,4 @@
 GtkProgressBar:prelight {
 	background-color: yellow;
 }
-*/
-extension[gap=left] {
-	border: 1px solid red;
-}
-extension[gap=top] {
-	border: 1px solid blue;
-}
-extension[gap=right] {
-	border: 1px solid yellow;
-}
-extension[gap=bottom] {
-	border: 1px solid black;
-}
 



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