~muktupavels/metacity/adwaita-icon-theme-lp-1414613

« back to all changes in this revision

Viewing changes to src/ui/frames.c

  • Committer: Package Import Robot
  • Author(s): Jeremy Bicha
  • Date: 2012-08-23 11:12:43 UTC
  • mfrom: (1.3.3)
  • mto: (2.5.2 sid) (1.4.2)
  • mto: This revision was merged to the branch mainline in revision 122.
  • Revision ID: package-import@ubuntu.com-20120823111243-0hjp8cv5xn2jr6jc
ImportĀ upstreamĀ versionĀ 2.34.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
35
35
#include "prefs.h"
36
36
#include "ui.h"
37
37
 
38
 
#include "gdk-compat.h"
39
 
 
40
38
#ifdef HAVE_SHAPE
41
39
#include <X11/extensions/shape.h>
42
40
#endif
110
108
 
111
109
static GtkWidgetClass *parent_class = NULL;
112
110
 
113
 
GType
114
 
meta_frames_get_type (void)
 
111
G_DEFINE_TYPE (MetaFrames, meta_frames, GTK_TYPE_WINDOW);
 
112
 
 
113
 
 
114
static GObject *
 
115
meta_frames_constructor (GType                  gtype,
 
116
                         guint                  n_properties,
 
117
                         GObjectConstructParam *properties)
115
118
{
116
 
  static GType frames_type = 0;
117
 
 
118
 
  if (!frames_type)
119
 
    {
120
 
      static const GtkTypeInfo frames_info =
121
 
      {
122
 
        "MetaFrames",
123
 
        sizeof (MetaFrames),
124
 
        sizeof (MetaFramesClass),
125
 
        (GtkClassInitFunc) meta_frames_class_init,
126
 
        (GtkObjectInitFunc) meta_frames_init,
127
 
        /* reserved_1 */ NULL,
128
 
        /* reserved_2 */ NULL,
129
 
        (GtkClassInitFunc) NULL,
130
 
      };
131
 
 
132
 
      frames_type = gtk_type_unique (GTK_TYPE_WINDOW, &frames_info);
133
 
    }
134
 
 
135
 
  return frames_type;
 
119
  GObject *object;
 
120
  GObjectClass *gobject_class;
 
121
 
 
122
  gobject_class = G_OBJECT_CLASS (parent_class);
 
123
  object = gobject_class->constructor (gtype, n_properties, properties);
 
124
 
 
125
  g_object_set (object,
 
126
                "type", GTK_WINDOW_POPUP,
 
127
                NULL);
 
128
 
 
129
  return object;
136
130
}
137
131
 
138
132
static void
148
142
 
149
143
  parent_class = g_type_class_peek_parent (class);
150
144
 
 
145
  gobject_class->constructor = meta_frames_constructor;
151
146
  gobject_class->finalize = meta_frames_finalize;
152
147
  object_class->destroy = meta_frames_destroy;
153
148
 
205
200
static void
206
201
meta_frames_init (MetaFrames *frames)
207
202
{
208
 
  GTK_WINDOW (frames)->type = GTK_WINDOW_POPUP;
209
 
 
210
203
  frames->text_heights = g_hash_table_new (NULL, NULL);
211
204
  
212
205
  frames->frames = g_hash_table_new (unsigned_long_hash, unsigned_long_equal);
462
455
  MetaFrameType type;
463
456
  MetaFrameStyle *style;
464
457
  
465
 
  g_return_if_fail (GTK_WIDGET_REALIZED (frames));
 
458
  g_return_if_fail (gtk_widget_get_realized (GTK_WIDGET (frames)));
466
459
 
467
460
  widget = GTK_WIDGET (frames);
468
461
      
595
588
    gtk_style_detach (frame->style);
596
589
 
597
590
  /* Weirdly, gtk_style_attach() steals a reference count from the style passed in */
598
 
  g_object_ref (GTK_WIDGET (frames)->style);
599
 
  frame->style = gtk_style_attach (GTK_WIDGET (frames)->style, frame->window);
 
591
  g_object_ref (gtk_widget_get_style (GTK_WIDGET (frames)));
 
592
  frame->style = gtk_style_attach (gtk_widget_get_style (GTK_WIDGET (frames)),
 
593
                                   frame->window);
600
594
}
601
595
 
602
596
void
1259
1253
  
1260
1254
  switch (action)
1261
1255
    {
1262
 
    case META_ACTION_TITLEBAR_TOGGLE_SHADE:
 
1256
    case G_DESKTOP_TITLEBAR_ACTION_TOGGLE_SHADE:
1263
1257
      {
1264
1258
        meta_core_get (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), frame->xwindow,
1265
1259
                       META_CORE_GET_FRAME_FLAGS, &flags,
1279
1273
      }
1280
1274
      break;          
1281
1275
      
1282
 
    case META_ACTION_TITLEBAR_TOGGLE_MAXIMIZE:
 
1276
    case G_DESKTOP_TITLEBAR_ACTION_TOGGLE_MAXIMIZE:
1283
1277
      {
1284
1278
        meta_core_get (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), frame->xwindow,
1285
1279
                       META_CORE_GET_FRAME_FLAGS, &flags,
1292
1286
      }
1293
1287
      break;
1294
1288
 
1295
 
    case META_ACTION_TITLEBAR_TOGGLE_MAXIMIZE_HORIZONTALLY:
 
1289
    case G_DESKTOP_TITLEBAR_ACTION_TOGGLE_MAXIMIZE_HORIZONTALLY:
1296
1290
      {
1297
1291
        meta_core_get (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), frame->xwindow,
1298
1292
                       META_CORE_GET_FRAME_FLAGS, &flags,
1305
1299
      }
1306
1300
      break;
1307
1301
 
1308
 
    case META_ACTION_TITLEBAR_TOGGLE_MAXIMIZE_VERTICALLY:
 
1302
    case G_DESKTOP_TITLEBAR_ACTION_TOGGLE_MAXIMIZE_VERTICALLY:
1309
1303
      {
1310
1304
        meta_core_get (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), frame->xwindow,
1311
1305
                       META_CORE_GET_FRAME_FLAGS, &flags,
1318
1312
      }
1319
1313
      break;
1320
1314
 
1321
 
    case META_ACTION_TITLEBAR_MINIMIZE:
 
1315
    case G_DESKTOP_TITLEBAR_ACTION_MINIMIZE:
1322
1316
      {
1323
1317
        meta_core_get (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), frame->xwindow,
1324
1318
                       META_CORE_GET_FRAME_FLAGS, &flags,
1331
1325
      }
1332
1326
      break;
1333
1327
 
1334
 
    case META_ACTION_TITLEBAR_NONE:
 
1328
    case G_DESKTOP_TITLEBAR_ACTION_NONE:
1335
1329
      /* Yaay, a sane user that doesn't use that other weird crap! */
1336
1330
      break;
1337
1331
    
1338
 
    case META_ACTION_TITLEBAR_LOWER:
 
1332
    case G_DESKTOP_TITLEBAR_ACTION_LOWER:
1339
1333
      meta_core_user_lower_and_unfocus (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
1340
1334
                                        frame->xwindow,
1341
1335
                                        event->time);
1342
1336
      break;
1343
1337
 
1344
 
    case META_ACTION_TITLEBAR_MENU:
 
1338
    case G_DESKTOP_TITLEBAR_ACTION_MENU:
1345
1339
      meta_core_show_window_menu (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
1346
1340
                                  frame->xwindow,
1347
1341
                                  event->x_root,
1349
1343
                                  event->button,
1350
1344
                                  event->time);
1351
1345
      break;
1352
 
 
1353
 
    case META_ACTION_TITLEBAR_LAST:
1354
 
      break;
1355
1346
    }
1356
1347
  
1357
1348
  return TRUE;
2577
2568
      /* Set A in ARGB to window_background_alpha, if we have ARGB */
2578
2569
 
2579
2570
      visual = gtk_widget_get_visual (GTK_WIDGET (frames));
2580
 
      if (visual->depth == 32) /* we have ARGB */
 
2571
      if (gdk_visual_get_depth (visual) == 32) /* we have ARGB */
2581
2572
        {
2582
2573
          color.pixel = (color.pixel & 0xffffff) &
2583
2574
            style->window_background_alpha << 24;