~timo-jyrinki/bamf/ubuntu-0.2.124.1

« back to all changes in this revision

Viewing changes to src/bamf-legacy-window.c

  • Committer: Timo Jyrinki
  • Date: 2012-11-14 07:15:04 UTC
  • mfrom: (235.1.49)
  • Revision ID: timo.jyrinki@canonical.com-20121114071504-s8umq349iaf7lwq6
* New upstream release.
  - Includes all previous cherry-picks
  - remerge libbamf, Makefile: don't export private symbols (factory 
    and matcher)
  - BamfMatcher: force a view as closed or not-closed on proper 
    signals. This avoids that a view that is opened is actually 
    marked as closed when really it's running. (LP: #925421)
  - Daemon, BamfApplication: Use the default icon if there is not 
    one defined in the desktop file. (LP: #886778)
  - BamfMatcher: don't reopen windows when iterating on view's 
    list, add tests.
  - Build fixes, including enabling introspection.
  - BamfMatcher: add support for libreoffice Base, and libreoffice 
    matching tests (LP: #1063862)

Show diffs side-by-side

added added

removed removed

Lines of Context:
78
78
bamf_legacy_window_get_window_type (BamfLegacyWindow *self)
79
79
{
80
80
  g_return_val_if_fail (BAMF_IS_LEGACY_WINDOW (self), 0);
 
81
 
 
82
  if (BAMF_LEGACY_WINDOW_GET_CLASS (self)->get_window_type)
 
83
    return BAMF_LEGACY_WINDOW_GET_CLASS (self)->get_window_type (self);
 
84
 
81
85
  g_return_val_if_fail (self->priv->legacy_window, 0);
82
86
 
83
87
  return (BamfWindowType) wnck_window_get_window_type (self->priv->legacy_window);
88
92
{
89
93
  g_return_val_if_fail (BAMF_IS_LEGACY_WINDOW (self), FALSE);
90
94
 
91
 
 
92
95
  if (BAMF_LEGACY_WINDOW_GET_CLASS (self)->needs_attention)
93
96
    return BAMF_LEGACY_WINDOW_GET_CLASS (self)->needs_attention (self);
94
97
 
356
359
  g_signal_emit (self, legacy_window_signals[GEOMETRY_CHANGED], 0);
357
360
}
358
361
 
359
 
gboolean 
 
362
gboolean
360
363
bamf_legacy_window_is_closed (BamfLegacyWindow *self)
361
364
{
362
365
  g_return_val_if_fail (BAMF_IS_LEGACY_WINDOW (self), TRUE);
363
 
  
 
366
 
 
367
  if (BAMF_LEGACY_WINDOW_GET_CLASS (self)->is_closed)
 
368
    return BAMF_LEGACY_WINDOW_GET_CLASS (self)->is_closed (self);
 
369
 
364
370
  return self->priv->is_closed;
365
371
}
366
372
 
423
429
}
424
430
 
425
431
char *
426
 
bamf_legacy_window_get_utf8_xprop (BamfLegacyWindow *self, const char* prop)
 
432
bamf_legacy_window_get_hint (BamfLegacyWindow *self, const char *name)
427
433
{
428
434
  g_return_val_if_fail (BAMF_IS_LEGACY_WINDOW (self), NULL);
429
 
 
430
 
  if (!self->priv->legacy_window)
431
 
    return NULL;
432
 
 
433
 
  guint xid = bamf_legacy_window_get_xid (self);
434
 
  return bamf_xutils_get_window_hint (xid, prop, XInternAtom(gdk_x11_get_default_xdisplay (), "UTF8_STRING", False));
 
435
  g_return_val_if_fail (name, NULL);
 
436
 
 
437
  if (BAMF_LEGACY_WINDOW_GET_CLASS (self)->get_hint)
 
438
    return BAMF_LEGACY_WINDOW_GET_CLASS (self)->get_hint (self, name);
 
439
 
 
440
  g_return_val_if_fail (WNCK_IS_WINDOW (self->priv->legacy_window), NULL);
 
441
 
 
442
  guint xid = bamf_legacy_window_get_xid (self);
 
443
 
 
444
  return bamf_xutils_get_string_window_hint (xid, name);
 
445
}
 
446
 
 
447
void
 
448
bamf_legacy_window_set_hint (BamfLegacyWindow *self, const char *name, const char *value)
 
449
{
 
450
  g_return_if_fail (BAMF_IS_LEGACY_WINDOW (self));
 
451
  g_return_if_fail (name);
 
452
 
 
453
  if (BAMF_LEGACY_WINDOW_GET_CLASS (self)->set_hint)
 
454
    return BAMF_LEGACY_WINDOW_GET_CLASS (self)->set_hint (self, name, value);
 
455
 
 
456
  g_return_if_fail (WNCK_IS_WINDOW (self->priv->legacy_window));
 
457
 
 
458
  guint xid = bamf_legacy_window_get_xid (self);
 
459
 
 
460
  bamf_xutils_set_string_window_hint (xid, name, value);
435
461
}
436
462
 
437
463
static void
463
489
bamf_legacy_window_reopen (BamfLegacyWindow *self)
464
490
{
465
491
  g_return_if_fail (BAMF_IS_LEGACY_WINDOW (self));
 
492
 
 
493
  if (BAMF_LEGACY_WINDOW_GET_CLASS (self)->reopen)
 
494
    return BAMF_LEGACY_WINDOW_GET_CLASS (self)->reopen (self);
 
495
 
466
496
  g_return_if_fail (WNCK_IS_WINDOW (self->priv->legacy_window));
467
497
 
468
498
  guint xid = bamf_legacy_window_get_xid (self);
488
518
 
489
519
  g_signal_handler_disconnect (wnck_screen_get_default (),
490
520
                               self->priv->closed_id);
491
 
                               
 
521
 
492
522
  if (self->priv->mini_icon_path)
493
523
    {
494
524
      file = g_file_new_for_path (self->priv->mini_icon_path);
495
525
      g_file_delete (file, NULL, NULL);
496
526
      g_object_unref (file);
497
 
      
 
527
 
498
528
      g_free (self->priv->mini_icon_path);
499
529
      self->priv->mini_icon_path = NULL;
500
530
    }