~ubuntu-branches/ubuntu/oneiric/cairo-dock/oneiric-201110111206

« back to all changes in this revision

Viewing changes to src/cairo-dock-callbacks.c

  • Committer: Bazaar Package Importer
  • Author(s): Julien Lavergne
  • Date: 2009-06-20 23:46:54 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20090620234654-hlg7pqvys6temuqq
Tags: 2.0.5-0ubuntu1
* New Upstream Version. (LP: #390053)
* debian/rules: 
 - Drop autoreconf call, it's fixed upstream.
 - Call dh_desktop for all desktop files.
* debian/control:
 - Add libgtkglext1-dev as depends for cairo-dock-dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
78
78
extern cairo_surface_t *g_pBackgroundSurfaceFull[2];
79
79
 
80
80
extern gboolean g_bEasterEggs;
81
 
 
82
81
extern gboolean g_bUseOpenGL;
83
 
 
84
 
extern gboolean g_bDisplayDropEmblem;
85
82
extern gboolean g_bLocked;
86
83
 
87
84
static gboolean s_bHideAfterShortcut = FALSE;
121
118
                if (pExpose->area.x + pExpose->area.y != 0)
122
119
                {
123
120
                        glEnable (GL_SCISSOR_TEST);  // ou comment diviser par 4 l'occupation CPU !
124
 
                        glScissor ((int) pExpose->area.x, (int) pExpose->area.y, (int) pExpose->area.width, (int) pExpose->area.height);
 
121
                        glScissor ((int) pExpose->area.x,
 
122
                                (int) (pDock->bHorizontalDock ? pDock->iCurrentHeight : pDock->iCurrentWidth) -
 
123
                                        pExpose->area.y - pExpose->area.height,  // lower left corner of the scissor box.
 
124
                                (int) pExpose->area.width,
 
125
                                (int) pExpose->area.height);
125
126
                }
126
127
                
127
128
                if (cairo_dock_is_loading ())
181
182
                cairo_dock_notify (CAIRO_DOCK_RENDER_DOCK, pDock, pCairoContext);
182
183
        }
183
184
        
184
 
        //Indicateur de drop, j'ai rajouter le support des surfaces en cache, du coup on ne perd de ressources qu'au dessin.
185
 
        if (pDock->bIsDragging && g_bDisplayDropEmblem)
186
 
        {
187
 
                Icon *pPointedIcon = cairo_dock_get_pointed_icon (pDock->icons);
188
 
                if (pPointedIcon != NULL && pPointedIcon->iAnimationState != CAIRO_DOCK_STATE_AVOID_MOUSE)
189
 
                {
190
 
                        cairo_translate (pCairoContext, pPointedIcon->fDrawX, pPointedIcon->fDrawY);
191
 
                        cairo_dock_draw_emblem_classic (pCairoContext, pPointedIcon, CAIRO_CONTAINER (pDock), CAIRO_DOCK_EMBLEM_DROP_INDICATOR, CAIRO_DOCK_EMBLEM_UPPER_RIGHT, FALSE);
192
 
                }
193
 
        }
194
 
        
195
185
        cairo_destroy (pCairoContext);
196
186
        
197
187
#ifdef HAVE_GLITZ
368
358
                if (myAccessibility.iShowSubDockDelay > 0)
369
359
                {
370
360
                        //pDock->iMouseX = iX;
 
361
                        if (s_iSidShowSubDockDemand != 0)
 
362
                                g_source_remove (s_iSidShowSubDockDemand);
371
363
                        s_iSidShowSubDockDemand = g_timeout_add (myAccessibility.iShowSubDockDelay, (GSourceFunc) _cairo_dock_show_sub_dock_delayed, pDock);
372
364
                        s_pDockShowingSubDock = pDock;
373
365
                        //cd_debug ("s_iSidShowSubDockDemand <- %d\n", s_iSidShowSubDockDemand);
922
914
        pDock->fDecorationsOffsetX = 0;
923
915
        if (pDock->iRefCount != 0)
924
916
        {
925
 
                gtk_window_present (GTK_WINDOW (pWidget));
 
917
                gtk_window_present (GTK_WINDOW (pWidget));  /// utile ???
926
918
        }
927
919
        pDock->bInside = TRUE;
928
920
        
997
989
                pDock->bAtBottom = FALSE;
998
990
        }
999
991
        
 
992
        Icon *icon = cairo_dock_get_pointed_icon (pDock->icons);
 
993
        if (icon != NULL)
 
994
                icon->bPointed = FALSE;  // sinon on ne detecte pas l'arrive sur l'icone, c'est genant si elle a un sous-dock.
 
995
 
1000
996
        cairo_dock_start_growing (pDock);
1001
997
 
1002
998
        return FALSE;
1014
1010
        }
1015
1011
        else if (pKey->type == GDK_KEY_RELEASE)
1016
1012
        {
1017
 
                if (pKey->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK))  // On relache la touche ALT, typiquement apres avoir fait un ALT + clique gauche + deplacement.
 
1013
                g_print ("release : pKey->keyval = %d\n", pKey->keyval);
 
1014
                if ((pKey->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK)) && pKey->keyval == 0)  // On relache la touche ALT, typiquement apres avoir fait un ALT + clique gauche + deplacement.
1018
1015
                {
1019
1016
                        if (pDock->iRefCount == 0)
1020
1017
                                cairo_dock_write_root_dock_gaps (pDock);
1051
1048
                cBGCommand = cCommand;
1052
1049
        if (cWorkingDirectory != NULL)
1053
1050
        {
1054
 
                cCommand = g_strdup_printf ("cd %s && %s", cWorkingDirectory, cBGCommand);
 
1051
                cCommand = g_strdup_printf ("cd '%s' && %s", cWorkingDirectory, cBGCommand);
1055
1052
                g_free (cBGCommand);
1056
1053
                cBGCommand = cCommand;
1057
1054
        }
1204
1201
        else if (CAIRO_DOCK_IS_LAUNCHER (icon))
1205
1202
        {
1206
1203
                cd_debug (" launcher");
1207
 
                if (icon->pSubDock != NULL && icon->pSubDock->icons != NULL && icon->cClass != NULL && ! (iButtonState & GDK_SHIFT_MASK))  // un lanceur ayant un sous-dock de classe ou une icone de paille : on cache ou on montre.
 
1204
                if (CAIRO_DOCK_IS_MULTI_APPLI (icon) && ! (iButtonState & GDK_SHIFT_MASK))  // un lanceur ayant un sous-dock de classe ou une icone de paille : on cache ou on montre.
1208
1205
                {
1209
 
                        if (myAccessibility.bShowSubDockOnClick)
 
1206
                        if (! myAccessibility.bShowSubDockOnClick)
1210
1207
                        {
1211
1208
                                _cairo_dock_hide_show_in_class_subdock (icon);
1212
1209
                        }
1250
1247
                cairo_dock_fm_launch_uri (icon->acCommand);
1251
1248
                return CAIRO_DOCK_INTERCEPT_NOTIFICATION;
1252
1249
        }
1253
 
        if (CAIRO_DOCK_IS_LAUNCHER (icon) && icon->pSubDock != NULL && icon->pSubDock->icons != NULL &&icon->cClass != NULL)
 
1250
        if (CAIRO_DOCK_IS_MULTI_APPLI (icon))
1254
1251
        {
1255
1252
                // On ferme tout.
1256
1253
                _cairo_dock_close_all_in_class_subdock (icon);
1425
1422
}
1426
1423
 
1427
1424
 
 
1425
gboolean cairo_dock_notification_scroll_icon (gpointer pUserData, Icon *icon, CairoDock *pDock, int iDirection)
 
1426
{
 
1427
        if (CAIRO_DOCK_IS_LAUNCHER (icon) && icon->pSubDock != NULL && icon->pSubDock->icons != NULL && icon->cClass != NULL)  // on emule un alt+tab sur la liste des applis du sous-dock.
 
1428
        {
 
1429
                _cairo_dock_show_prev_next_in_class_subdock (icon, iDirection == GDK_SCROLL_DOWN);
 
1430
        }
 
1431
        else if (CAIRO_DOCK_IS_APPLI (icon) && icon->cClass != NULL)
 
1432
        {
 
1433
                Icon *pNextIcon = cairo_dock_get_prev_next_classmate_icon (icon, iDirection == GDK_SCROLL_DOWN);
 
1434
                if (pNextIcon != NULL)
 
1435
                        cairo_dock_show_xwindow (pNextIcon->Xid);
 
1436
        }
 
1437
        return CAIRO_DOCK_LET_PASS_NOTIFICATION;
 
1438
}
1428
1439
gboolean cairo_dock_on_scroll (GtkWidget* pWidget, GdkEventScroll* pScroll, CairoDock *pDock)
1429
1440
{
1430
1441
        if (pScroll->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK))
1457
1468
        Icon *icon = cairo_dock_get_pointed_icon (pDock->icons);
1458
1469
        if (icon != NULL)
1459
1470
        {
1460
 
                if (CAIRO_DOCK_IS_LAUNCHER (icon) && icon->pSubDock != NULL && icon->pSubDock->icons != NULL && icon->cClass != NULL)  // on emule un alt+tab sur la liste des applis du sous-dock.
1461
 
                {
1462
 
                        _cairo_dock_show_prev_next_in_class_subdock (icon, pScroll->direction == GDK_SCROLL_DOWN);
1463
 
                }
1464
 
                else if (CAIRO_DOCK_IS_APPLI (icon) && icon->cClass != NULL)
1465
 
                {
1466
 
                        Icon *pNextIcon = cairo_dock_get_prev_next_classmate_icon (icon, pScroll->direction == GDK_SCROLL_DOWN);
1467
 
                        if (pNextIcon != NULL)
1468
 
                                cairo_dock_show_xwindow (pNextIcon->Xid);
1469
 
                }
1470
1471
                cairo_dock_notify (CAIRO_DOCK_SCROLL_ICON, icon, pDock, pScroll->direction);
1471
 
                
1472
1472
        }
1473
1473
 
1474
1474
        return FALSE;
1757
1757
}
1758
1758
 
1759
1759
 
1760
 
gboolean cairo_dock_on_delete (GtkWidget *pWidget, GdkEvent *event, CairoDock *pDock)
 
1760
/*gboolean cairo_dock_on_delete (GtkWidget *pWidget, GdkEvent *event, CairoDock *pDock)
1761
1761
{
1762
1762
        Icon *pIcon = NULL;
1763
1763
        if (CAIRO_DOCK_IS_DOCK (pDock))
1774
1774
        if (answer == GTK_RESPONSE_YES)
1775
1775
                gtk_main_quit ();
1776
1776
        return FALSE;
1777
 
}
 
1777
}*/
1778
1778
 
1779
1779
 
1780
1780
void cairo_dock_show_dock_at_mouse (CairoDock *pDock)