Cinnamon: Изменение свойства margin-from-top-edge-of-screen #notification css в теме не работает

Созданный на 11 мар. 2016  ·  3Комментарии  ·  Источник: linuxmint/cinnamon

Я пытаюсь изменить положение всплывающего окна с уведомлением, как здесь http://www.webupd8.org/2012/06/how-to-change-notifications-position-in.html . Но добавление или изменение margin-from-top-edge-of-screen вообще не имеет никакого эффекта. Напротив, изменение margin-from-right-edge-of-screen работает нормально.

Я использую Linux Mint 17.3 с темой Linux Mint и мои # уведомления выглядят так:

#notification {
font-size: 8.5pt;
border-radius: 10px 10px 10px 10px;
border: 2px solid rgba(214,214,214,0.5);
background-gradient-direction: vertical;
background-gradient-start: rgba(66,66,66,0.9);
background-gradient-end: rgba(55,55,55,0.9);
padding: 8px 8px 8px 8px;
spacing-rows: 10px;
spacing-columns: 10px;
margin-from-right-edge-of-screen: 80px;  
margin-from-top-edge-of-screen: 350px;
width: 34em;
color: white;    
/* The px are a temporary fix until get_theme_node() can return raw numbers. */
opacity:255px;
mouseover-opacity:96px
}

Есть идеи, почему изменение margin-from-top-edge-of-screen имеет никакого эффекта?

Самый полезный комментарий

Хорошо, есть ли способ переместить это всплывающее окно, чтобы оно не превышало кнопки свертывания / развертывания / закрытия? Очень неприятно размещать всплывающие окна в правом верхнем углу экрана ...

//РЕДАКТИРОВАТЬ

хорошо, я нашел код, отвечающий за размещение уведомления, /usr/share/cinnamon/js/ui/messageTray.js:

_onNotificationExpanded: function() {
    let expandedY = this._notification.actor.height - this._notificationBin.height;
    // Don't animate the notification to its new position if it has shrunk:
    // there will be a very visible "gap" that breaks the illusion.

    // This isn't really working at the moment, but it was just crashing before
    // if it encountered a critical notification.  expandedY is always 0.  For now
    // just make sure it's not covering the top panel if there is one.

    let monitor = Main.layoutManager.primaryMonitor;
    let panel = Main.panelManager.getPanel(0, false); // We only want the top panel in monitor 0
    let height = 5;
    if (panel)
        height += panel.actor.get_height();
    let newY = monitor.y + height + 50; // ADDED 50 HERE SO POPUP IS NOT OVER WINDOW CONTROLS

    if (this._notificationBin.y < expandedY)
        this._notificationBin.y = expandedY;
    else if (this._notification.y != expandedY)
        this._tween(this._notificationBin, '_notificationState', State.SHOWN,
                    { y: newY,
                      time: ANIMATION_TIME,
                      transition: 'easeOutQuad'
                    });

},

Он перестанет работать после обновления корицы, так как этот файл будет перезаписан.

Все 3 Комментарий

Это потому, что маржа от верхнего края экрана не является реальной собственностью. Такого не существует, поэтому Корица просто игнорирует это. Пост, на который вы указали, действительно старый. С тех пор, вероятно, все изменилось.

Хорошо, есть ли способ переместить это всплывающее окно, чтобы оно не превышало кнопки свертывания / развертывания / закрытия? Очень неприятно размещать всплывающие окна в правом верхнем углу экрана ...

//РЕДАКТИРОВАТЬ

хорошо, я нашел код, отвечающий за размещение уведомления, /usr/share/cinnamon/js/ui/messageTray.js:

_onNotificationExpanded: function() {
    let expandedY = this._notification.actor.height - this._notificationBin.height;
    // Don't animate the notification to its new position if it has shrunk:
    // there will be a very visible "gap" that breaks the illusion.

    // This isn't really working at the moment, but it was just crashing before
    // if it encountered a critical notification.  expandedY is always 0.  For now
    // just make sure it's not covering the top panel if there is one.

    let monitor = Main.layoutManager.primaryMonitor;
    let panel = Main.panelManager.getPanel(0, false); // We only want the top panel in monitor 0
    let height = 5;
    if (panel)
        height += panel.actor.get_height();
    let newY = monitor.y + height + 50; // ADDED 50 HERE SO POPUP IS NOT OVER WINDOW CONTROLS

    if (this._notificationBin.y < expandedY)
        this._notificationBin.y = expandedY;
    else if (this._notification.y != expandedY)
        this._tween(this._notificationBin, '_notificationState', State.SHOWN,
                    { y: newY,
                      time: ANIMATION_TIME,
                      transition: 'easeOutQuad'
                    });

},

Он перестанет работать после обновления корицы, так как этот файл будет перезаписан.

Закрытие, поскольку исходная проблема касается свойства, которого даже не существует, и у нас есть другие открытые проблемы, связанные с возможностью перемещать уведомления.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги