Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Further work on desklets (3) #1831

Merged
merged 19 commits into from Apr 22, 2013

Conversation

Projects
None yet
4 participants
Contributor

dalcde commented Apr 1, 2013

Rebased + incorporated better DND fix by Lusito

Ready for merge

Contributor

Lusito commented Apr 1, 2013

What about the on_desklet_removed callback ?

Contributor

dalcde commented Apr 1, 2013

I was just about to fix that :)

Contributor

Lusito commented Apr 8, 2013

  • Is it really good to call the destroy method on the desklet before the fade tween is done ?
  • You should probably check if this.timeout is set before disconnecting from it (on the clock desklet).
Contributor

dalcde commented Apr 8, 2013

  • You're right. Fixing
  • I don't see any reason why this.timeout would be not set.
    P.S. It doesn't hurt if it crashes during removal (bad excuse?)
Contributor

Lusito commented Apr 8, 2013

nevermind the timeout.

Owner

clefebvre commented Apr 8, 2013

Ok, this is really good. There's one critical issue though... the photoframe rework loads all images into memory. On my box here, this equates in cinnamon using 1.2GB RAM! :)

Contributor

dalcde commented Apr 21, 2013

Fixed memory issues.

@clefebvre clefebvre added a commit that referenced this pull request Apr 22, 2013

@clefebvre clefebvre Merge pull request #1831 from dalcde/desklet-further3
Further work on desklets (3)
74b0281

@clefebvre clefebvre merged commit 74b0281 into linuxmint:master Apr 22, 2013

This makes Cinnamon crash for me shortly (~0.5 seconds) after showing the desktop. I get to see the panels and then it crashes without saying anything in the logs or in the console. I have nailed it down to "new Meta.Window();". NB. this is on my clone of the upstream master, not my own special master, and it happens on both of my machines (Ubuntu 12.04.2 and LMDE, respectively).

Owner

dalcde replied Apr 25, 2013

Muffin master?

It's working for me on LMDE. Can you try to run new Meta.Window() in Looking Glass?

Contributor

autarkper commented Apr 26, 2013

Yes, muffin master. No problem when executed in Looking Glass.

Update: Actually that code may only be the indirect cause of the crash, since the crash seems to happen a bit later on.

Contributor

autarkper commented Apr 28, 2013

Below are the Muffin log statements leading up to the crash. Judging by their somehow pointing to the desktop, I have made sure that my Nemo is up to date, but that doesn't help, nor does killing Nemo before restarting.

     5  WINDOW_STATE: Putting 0x3200004 (XChat: aut) in the move_resize queue
     6  WINDOW_STATE: Putting 0x4000003 (Applets) in the move_resize queue
     7  WINDOW_STATE: Putting 0x3800004 (deskletMan) in the move_resize queue
     8  WINDOW_STATE: Putting 0x3600003 (cinnamon-d) in the move_resize queue
     9  WINDOW_STATE: Putting 0x3e000ad (Issues · ) in the move_resize queue
    10  WINDOW_STATE: Putting 0x4400003 (Menu) in the move_resize queue
    11  WINDOW_STATE: Putting 0x2438925 (Terminal) in the move_resize queue
    12  PREFS: Notifying listeners that pref THEME changed
    13  THEMES: Setting current theme to "ClearlooksClassic"
    14  WINDOW_STATE: Putting 0x1000004 (Desktop) in the move_resize queue
    15  PREFS: Notifying listeners that pref MOUSE_BUTTON_MODS changed
    16  VERBOSE: Ungrabbing 0x1000004 sync = 0 button = 1 modmask 0x8
    17  VERBOSE: Ungrabbing 0x1000004 sync = 0 button = 2 modmask 0x8
    18  VERBOSE: Ungrabbing 0x1000004 sync = 0 button = 3 modmask 0x8
    19  VERBOSE: Ungrabbing unfocused window buttons for 0x1000004 (Desktop)
    20  VERBOSE: Ungrabbing 0x1000004 sync = 0 button = 1 modmask 0x0
    21  VERBOSE: Ungrabbing 0x1000004 sync = 0 button = 2 modmask 0x0
    22  VERBOSE: Ungrabbing 0x1000004 sync = 0 button = 3 modmask 0x0
    23  VERBOSE: Ungrabbing 0x4400003 sync = 0 button = 1 modmask 0x8
    24  VERBOSE: Ungrabbing 0x4400003 sync = 0 button = 2 modmask 0x8
    25  VERBOSE: Ungrabbing 0x4400003 sync = 0 button = 3 modmask 0x8
    26  VERBOSE: Ungrabbing unfocused window buttons for 0x4400003 (Menu)
    27  VERBOSE: Ungrabbing 0x4400003 sync = 0 button = 1 modmask 0x0
    28  VERBOSE: Ungrabbing 0x4400003 sync = 0 button = 2 modmask 0x0
    29  VERBOSE: Ungrabbing 0x4400003 sync = 0 button = 3 modmask 0x0
    30  VERBOSE: Ungrabbing 0x4000003 sync = 0 button = 1 modmask 0x8
    31  VERBOSE: Ungrabbing 0x4000003 sync = 0 button = 2 modmask 0x8
    32  VERBOSE: Ungrabbing 0x4000003 sync = 0 button = 3 modmask 0x8
    33  VERBOSE: Ungrabbing unfocused window buttons for 0x4000003 (Applets)
    34  VERBOSE: Ungrabbing 0x4000003 sync = 0 button = 1 modmask 0x0
    35  VERBOSE: Ungrabbing 0x4000003 sync = 0 button = 2 modmask 0x0
    36  VERBOSE: Ungrabbing 0x4000003 sync = 0 button = 3 modmask 0x0
    37  VERBOSE: Ungrabbing 0x3600003 sync = 0 button = 1 modmask 0x8
    38  VERBOSE: Ungrabbing 0x3600003 sync = 0 button = 2 modmask 0x8
    39  VERBOSE: Ungrabbing 0x3600003 sync = 0 button = 3 modmask 0x8
    40  VERBOSE: Ungrabbing unfocused window buttons for 0x3600003 (cinnamon-d)
    41  VERBOSE: Ungrabbing 0x3600003 sync = 0 button = 1 modmask 0x0
    42  VERBOSE: Ungrabbing 0x3600003 sync = 0 button = 2 modmask 0x0
    43  VERBOSE: Ungrabbing 0x3600003 sync = 0 button = 3 modmask 0x0
    44  VERBOSE: Ungrabbing 0x3e000ad sync = 0 button = 1 modmask 0x8
    45  VERBOSE: Ungrabbing 0x3e000ad sync = 0 button = 2 modmask 0x8
    46  VERBOSE: Ungrabbing 0x3e000ad sync = 0 button = 3 modmask 0x8
    47  VERBOSE: Ungrabbing unfocused window buttons for 0x3e000ad (Issues · )
    48  VERBOSE: Ungrabbing 0x3e000ad sync = 0 button = 1 modmask 0x0
    49  VERBOSE: Ungrabbing 0x3e000ad sync = 0 button = 2 modmask 0x0
    50  VERBOSE: Ungrabbing 0x3e000ad sync = 0 button = 3 modmask 0x0
    51  VERBOSE: Ungrabbing 0x3200004 sync = 0 button = 1 modmask 0x8
    52  VERBOSE: Ungrabbing 0x3200004 sync = 0 button = 2 modmask 0x8
    53  VERBOSE: Ungrabbing 0x3200004 sync = 0 button = 3 modmask 0x8
    54  VERBOSE: Ungrabbing unfocused window buttons for 0x3200004 (XChat: aut)
    55  VERBOSE: Ungrabbing 0x3200004 sync = 0 button = 1 modmask 0x0
    56  VERBOSE: Ungrabbing 0x3200004 sync = 0 button = 2 modmask 0x0
    57  VERBOSE: Ungrabbing 0x3200004 sync = 0 button = 3 modmask 0x0
    58  VERBOSE: Ungrabbing 0x3800004 sync = 0 button = 1 modmask 0x8
    59  VERBOSE: Ungrabbing 0x3800004 sync = 0 button = 2 modmask 0x8
    60  VERBOSE: Ungrabbing 0x3800004 sync = 0 button = 3 modmask 0x8
    61  VERBOSE: Ungrabbing unfocused window buttons for 0x3800004 (deskletMan)
    62  VERBOSE: Ungrabbing 0x3800004 sync = 0 button = 1 modmask 0x0
    63  VERBOSE: Ungrabbing 0x3800004 sync = 0 button = 2 modmask 0x0
    64  VERBOSE: Ungrabbing 0x3800004 sync = 0 button = 3 modmask 0x0
    65  VERBOSE: Ungrabbing 0x2438925 sync = 0 button = 1 modmask 0x8
    66  VERBOSE: Ungrabbing 0x2438925 sync = 0 button = 2 modmask 0x8
    67  VERBOSE: Ungrabbing 0x2438925 sync = 0 button = 3 modmask 0x8
    68  VERBOSE: Ungrabbing unfocused window buttons for 0x2438925 (Terminal)
    69  VERBOSE: Grabbing unfocused window buttons for 0x1000004 (Desktop)
    70  VERBOSE: Grabbing 0x1000004 sync = 1 button = 1 modmask 0x0
    71  VERBOSE: Grabbing 0x1000004 sync = 1 button = 2 modmask 0x0
    72  VERBOSE: Grabbing 0x1000004 sync = 1 button = 3 modmask 0x0
    73  VERBOSE: Grabbing window buttons for 0x1000004
    74  VERBOSE: Grabbing 0x1000004 sync = 0 button = 1 modmask 0x8
    75  VERBOSE: Grabbing 0x1000004 sync = 0 button = 2 modmask 0x8
    76  VERBOSE: Grabbing 0x1000004 sync = 0 button = 3 modmask 0x8
    77  VERBOSE: Grabbing 0x1000004 sync = 0 button = 1 modmask 0x9
    78  VERBOSE: Grabbing unfocused window buttons for 0x4400003 (Menu)
    79  VERBOSE: Grabbing 0x4400003 sync = 1 button = 1 modmask 0x0
    80  VERBOSE: Grabbing 0x4400003 sync = 1 button = 2 modmask 0x0
    81  VERBOSE: Grabbing 0x4400003 sync = 1 button = 3 modmask 0x0
    82  VERBOSE: Grabbing window buttons for 0x4400003
    83  VERBOSE: Grabbing 0x4400003 sync = 0 button = 1 modmask 0x8
    84  VERBOSE: Grabbing 0x4400003 sync = 0 button = 2 modmask 0x8
    85  VERBOSE: Grabbing 0x4400003 sync = 0 button = 3 modmask 0x8
    86  VERBOSE: Grabbing 0x4400003 sync = 0 button = 1 modmask 0x9
    87  VERBOSE: Grabbing unfocused window buttons for 0x4000003 (Applets)
    88  VERBOSE: Grabbing 0x4000003 sync = 1 button = 1 modmask 0x0
    89  VERBOSE: Grabbing 0x4000003 sync = 1 button = 2 modmask 0x0
    90  VERBOSE: Grabbing 0x4000003 sync = 1 button = 3 modmask 0x0
    91  VERBOSE: Grabbing window buttons for 0x4000003
    92  VERBOSE: Grabbing 0x4000003 sync = 0 button = 1 modmask 0x8
    93  VERBOSE: Grabbing 0x4000003 sync = 0 button = 2 modmask 0x8
    94  VERBOSE: Grabbing 0x4000003 sync = 0 button = 3 modmask 0x8
    95  VERBOSE: Grabbing 0x4000003 sync = 0 button = 1 modmask 0x9
    96  VERBOSE: Grabbing unfocused window buttons for 0x3600003 (cinnamon-d)
    97  VERBOSE: Grabbing 0x3600003 sync = 1 button = 1 modmask 0x0
    98  VERBOSE: Grabbing 0x3600003 sync = 1 button = 2 modmask 0x0
    99  VERBOSE: Grabbing 0x3600003 sync = 1 button = 3 modmask 0x0
   100  VERBOSE: Grabbing window buttons for 0x3600003
   101  VERBOSE: Grabbing 0x3600003 sync = 0 button = 1 modmask 0x8
   102  VERBOSE: Grabbing 0x3600003 sync = 0 button = 2 modmask 0x8
   103  VERBOSE: Grabbing 0x3600003 sync = 0 button = 3 modmask 0x8
   104  VERBOSE: Grabbing 0x3600003 sync = 0 button = 1 modmask 0x9
   105  VERBOSE: Grabbing unfocused window buttons for 0x3e000ad (Issues · )
   106  VERBOSE: Grabbing 0x3e000ad sync = 1 button = 1 modmask 0x0
   107  VERBOSE: Grabbing 0x3e000ad sync = 1 button = 2 modmask 0x0
   108  VERBOSE: Grabbing 0x3e000ad sync = 1 button = 3 modmask 0x0
   109  VERBOSE: Grabbing window buttons for 0x3e000ad
   110  VERBOSE: Grabbing 0x3e000ad sync = 0 button = 1 modmask 0x8
   111  VERBOSE: Grabbing 0x3e000ad sync = 0 button = 2 modmask 0x8
   112  VERBOSE: Grabbing 0x3e000ad sync = 0 button = 3 modmask 0x8
   113  VERBOSE: Grabbing 0x3e000ad sync = 0 button = 1 modmask 0x9
   114  VERBOSE: Grabbing unfocused window buttons for 0x3200004 (XChat: aut)
   115  VERBOSE: Grabbing 0x3200004 sync = 1 button = 1 modmask 0x0
   116  VERBOSE: Grabbing 0x3200004 sync = 1 button = 2 modmask 0x0
   117  VERBOSE: Grabbing 0x3200004 sync = 1 button = 3 modmask 0x0
   118  VERBOSE: Grabbing window buttons for 0x3200004
   119  VERBOSE: Grabbing 0x3200004 sync = 0 button = 1 modmask 0x8
   120  VERBOSE: Grabbing 0x3200004 sync = 0 button = 2 modmask 0x8
   121  VERBOSE: Grabbing 0x3200004 sync = 0 button = 3 modmask 0x8
   122  VERBOSE: Grabbing 0x3200004 sync = 0 button = 1 modmask 0x9
   123  VERBOSE: Grabbing unfocused window buttons for 0x3800004 (deskletMan)
   124  VERBOSE: Grabbing 0x3800004 sync = 1 button = 1 modmask 0x0
   125  VERBOSE: Grabbing 0x3800004 sync = 1 button = 2 modmask 0x0
   126  VERBOSE: Grabbing 0x3800004 sync = 1 button = 3 modmask 0x0
   127  VERBOSE: Grabbing window buttons for 0x3800004
   128  VERBOSE: Grabbing 0x3800004 sync = 0 button = 1 modmask 0x8
   129  VERBOSE: Grabbing 0x3800004 sync = 0 button = 2 modmask 0x8
   130  VERBOSE: Grabbing 0x3800004 sync = 0 button = 3 modmask 0x8
   131  VERBOSE: Grabbing 0x3800004 sync = 0 button = 1 modmask 0x9
   132  VERBOSE: Grabbing unfocused window buttons for 0x2438925 (Terminal)
   133  VERBOSE: Grabbing 0x2438925 sync = 1 button = 1 modmask 0x0
   134  VERBOSE: Grabbing 0x2438925 sync = 1 button = 2 modmask 0x0
   135  VERBOSE: Grabbing 0x2438925 sync = 1 button = 3 modmask 0x0
   136  VERBOSE: Grabbing window buttons for 0x2438925
   137  VERBOSE: Grabbing 0x2438925 sync = 0 button = 1 modmask 0x8
   138  VERBOSE: Grabbing 0x2438925 sync = 0 button = 2 modmask 0x8
   139  VERBOSE: Grabbing 0x2438925 sync = 0 button = 3 modmask 0x8
   140  VERBOSE: Grabbing 0x2438925 sync = 0 button = 1 modmask 0x9
   141  PREFS: Notifying listeners that pref WORKSPACES_ONLY_ON_PRIMARY changed
   142  WINDOW_STATE: Putting 0x2438925 (Terminal) in the calc_showing queue
   143  WINDOW_STATE: Putting 0x3800004 (deskletMan) in the calc_showing queue
   144  WINDOW_STATE: Putting 0x3200004 (XChat: aut) in the calc_showing queue
   145  WINDOW_STATE: Putting 0x3e000ad (Issues · ) in the calc_showing queue
   146  WINDOW_STATE: Putting 0x3600003 (cinnamon-d) in the calc_showing queue
   147  WINDOW_STATE: Putting 0x4000003 (Applets) in the calc_showing queue
   148  WINDOW_STATE: Putting 0x4400003 (Menu) in the calc_showing queue
   149  WINDOW_STATE: Putting 0x1000004 (Desktop) in the calc_showing queue
   428  ** Message: applet now removed from the notification area
Contributor

autarkper commented Apr 29, 2013

This line from the log is probably important:

   141  PREFS: Notifying listeners that pref WORKSPACES_ONLY_ON_PRIMARY changed

It turns out that I have that pref enabled. Turning the pref off enables me to restart Cinnamon without any problem. Turning the pref on again will kill Cinnamon instantly.

Contributor

autarkper commented Apr 29, 2013

I think if we could just pass null into get_mouse_window we wouldn't have any problem:

    let window = global.screen.get_mouse_window(null); /

But that gives us:

JS ERROR: !!!     stack = '"("Argument 'not_this_one' (type interface) may not be null")@gjs_throw:0

So, I'm wondering, how do we change the type interface to accept null?

Contributor

dalcde commented Apr 29, 2013

It should be able to accept null as argument, according to the description in muffin :(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment