Use init and clear for GMutex and GCond
[projects/chimara/chimara.git] / libchimara / window.c
index c9132939237d5548f9632ff85a903f0e70148088..bcdce5535bc96125133cb4b9e7fbe78b20b4bc87 100644 (file)
@@ -691,10 +691,10 @@ glk_window_open(winid_t split, glui32 method, glui32 size, glui32 wintype,
        }
 
        /* Set the window as a child of the Glk widget, don't trigger an arrange event */
-       g_mutex_lock(glk_data->arrange_lock);
+       g_mutex_lock(&glk_data->arrange_lock);
        glk_data->needs_rearrange = TRUE;
        glk_data->ignore_next_arrange_event = TRUE;
-       g_mutex_unlock(glk_data->arrange_lock);
+       g_mutex_unlock(&glk_data->arrange_lock);
        gtk_widget_set_parent(win->frame, GTK_WIDGET(glk_data->self));
        gtk_widget_queue_resize(GTK_WIDGET(glk_data->self));
        
@@ -888,10 +888,10 @@ glk_window_close(winid_t win, stream_result_t *result)
        window_close_common(win, FALSE);
 
        /* Schedule a redraw */
-       g_mutex_lock(glk_data->arrange_lock);
+       g_mutex_lock(&glk_data->arrange_lock);
        glk_data->needs_rearrange = TRUE;
        glk_data->ignore_next_arrange_event = TRUE;
-       g_mutex_unlock(glk_data->arrange_lock);
+       g_mutex_unlock(&glk_data->arrange_lock);
        gtk_widget_queue_resize( GTK_WIDGET(glk_data->self) );
        gdk_threads_leave();
 }
@@ -954,11 +954,11 @@ glk_window_clear(winid_t win)
                    /* fill the buffer with blanks */
                {
                        /* Wait for the window's size to be updated */
-                       g_mutex_lock(glk_data->arrange_lock);
+                       g_mutex_lock(&glk_data->arrange_lock);
                        if(glk_data->needs_rearrange)
-                               g_cond_wait(glk_data->rearranged, glk_data->arrange_lock);
-                       g_mutex_unlock(glk_data->arrange_lock);
-                       
+                               g_cond_wait(&glk_data->rearranged, &glk_data->arrange_lock);
+                       g_mutex_unlock(&glk_data->arrange_lock);
+
                    gdk_threads_enter();
                    
             /* Manually put newlines at the end of each row of characters in the buffer; manual newlines make resizing the window's grid easier. */
@@ -1006,10 +1006,10 @@ glk_window_clear(winid_t win)
                        GtkAllocation allocation;
 
                        /* Wait for the window's size to be updated */
-                       g_mutex_lock(glk_data->arrange_lock);
+                       g_mutex_lock(&glk_data->arrange_lock);
                        if(glk_data->needs_rearrange)
-                               g_cond_wait(glk_data->rearranged, glk_data->arrange_lock);
-                       g_mutex_unlock(glk_data->arrange_lock);
+                               g_cond_wait(&glk_data->rearranged, &glk_data->arrange_lock);
+                       g_mutex_unlock(&glk_data->arrange_lock);
 
                        gdk_threads_enter();
                        gtk_widget_get_allocation(win->widget, &allocation);
@@ -1150,11 +1150,11 @@ glk_window_get_size(winid_t win, glui32 *widthptr, glui32 *heightptr)
             
         case wintype_TextGrid:
                        /* Wait until the window's size is current */
-                       g_mutex_lock(glk_data->arrange_lock);
+                       g_mutex_lock(&glk_data->arrange_lock);
                        if(glk_data->needs_rearrange)
-                               g_cond_wait(glk_data->rearranged, glk_data->arrange_lock);
-                       g_mutex_unlock(glk_data->arrange_lock);
-                       
+                               g_cond_wait(&glk_data->rearranged, &glk_data->arrange_lock);
+                       g_mutex_unlock(&glk_data->arrange_lock);
+
                        gdk_threads_enter();
                        gtk_widget_get_allocation(win->widget, &allocation);
                        /* Cache the width and height */
@@ -1169,12 +1169,12 @@ glk_window_get_size(winid_t win, glui32 *widthptr, glui32 *heightptr)
             break;
             
         case wintype_TextBuffer:
-            /* Wait until the window's size is current */
-                       g_mutex_lock(glk_data->arrange_lock);
+                       /* Wait until the window's size is current */
+                       g_mutex_lock(&glk_data->arrange_lock);
                        if(glk_data->needs_rearrange)
-                               g_cond_wait(glk_data->rearranged, glk_data->arrange_lock);
-                       g_mutex_unlock(glk_data->arrange_lock);
-                       
+                               g_cond_wait(&glk_data->rearranged, &glk_data->arrange_lock);
+                       g_mutex_unlock(&glk_data->arrange_lock);
+
             gdk_threads_enter();
             gtk_widget_get_allocation(win->widget, &allocation);
             if(widthptr != NULL)
@@ -1186,11 +1186,11 @@ glk_window_get_size(winid_t win, glui32 *widthptr, glui32 *heightptr)
             break;
 
                case wintype_Graphics:
-                       g_mutex_lock(glk_data->arrange_lock);
+                       g_mutex_lock(&glk_data->arrange_lock);
                        if(glk_data->needs_rearrange)
-                               g_cond_wait(glk_data->rearranged, glk_data->arrange_lock);
-                       g_mutex_unlock(glk_data->arrange_lock);
-                       
+                               g_cond_wait(&glk_data->rearranged, &glk_data->arrange_lock);
+                       g_mutex_unlock(&glk_data->arrange_lock);
+
             gdk_threads_enter();
             gtk_widget_get_allocation(win->widget, &allocation);
             if(widthptr != NULL)
@@ -1293,10 +1293,10 @@ glk_window_set_arrangement(winid_t win, glui32 method, glui32 size, winid_t keyw
 
        /* Tell GTK to rearrange the windows */
        gdk_threads_enter();
-       g_mutex_lock(glk_data->arrange_lock);
+       g_mutex_lock(&glk_data->arrange_lock);
        glk_data->needs_rearrange = TRUE;
        glk_data->ignore_next_arrange_event = TRUE;
-       g_mutex_unlock(glk_data->arrange_lock);
+       g_mutex_unlock(&glk_data->arrange_lock);
        gtk_widget_queue_resize(GTK_WIDGET(glk_data->self));
        gdk_threads_leave();
 }
@@ -1365,10 +1365,10 @@ glk_window_move_cursor(winid_t win, glui32 xpos, glui32 ypos)
        ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
        
        /* Wait until the window's size is current */
-       g_mutex_lock(glk_data->arrange_lock);
+       g_mutex_lock(&glk_data->arrange_lock);
        if(glk_data->needs_rearrange)
-               g_cond_wait(glk_data->rearranged, glk_data->arrange_lock);
-       g_mutex_unlock(glk_data->arrange_lock);
+               g_cond_wait(&glk_data->rearranged, &glk_data->arrange_lock);
+       g_mutex_unlock(&glk_data->arrange_lock);
 
        /* Don't do anything if the window is shrunk down to nothing */
        if(win->width == 0 || win->height == 0)