Hyprland icon indicating copy to clipboard operation
Hyprland copied to clipboard

Firefox CSS - Hover not recognized when dragging items

Open Duder963 opened this issue 1 year ago • 0 comments

Regression?

Yes

System Info and Version

System/Version info
Hyprland, built from branch  at commit 918d8340afd652b011b937d29d5eea0be08467f5  (flake.lock: update).
Date: Tue Jun 25 12:06:02 2024
Tag: v0.41.2, commits: 4886

flags: (if any)


System Information:
System name: Linux
Node name: AveryPC
Release: 6.9.7-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Fri, 28 Jun 2024 04:32:50 +0000


GPU information: 
09:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] [10de:1b06] (rev a1) (prog-if 00 [VGA controller])


os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo


plugins:

======Config-Start======


Config File: /home/duder963/.config/hypr/hyprland.conf: Read Succeeded
# This is an example Hyprland config file.
#
# Refer to the wiki for more information.

#
# Please note not all available settings / options are set here.
# For a full list, see the wiki
#

# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=,preferred,auto,auto

#env = GTK_THEME,catppuccin-mocha-blue-standard+default-dark

# Execute your favorite apps at launch
# exec-once = waybar & hyprpaper & firefox
exec-once = /usr/lib/polkit-kde-authentication-agent-1
exec-once = kdeconnect-indicator

exec-once = waypaper --restore

# Source a file (multi-file configs)
source = ~/.config/localdots/hyprland.conf

# Set programs that you use
$terminal = kitty
$fileManager = nemo
$menu = rofi -show drun -show-icons

# Some default env vars.
env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt6ct if you have that

# For all categories, see https://wiki.hyprland.org/Configuring/Variables/

input {
    kb_layout = us
    kb_variant =
    kb_model =
    kb_options =
    kb_rules =

    sensitivity = -0.5
    follow_mouse = 1
    mouse_refocus = false

    touchpad {
        natural_scroll = false
    }

}

general {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    gaps_in = 5
    gaps_out = 10
    border_size = 0
    col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
    col.inactive_border = rgba(595959aa)

    layout = dwindle

    # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
}

xwayland {
  #force_zero_scaling = true
}

cursor {
    no_warps = true
}

decoration {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    rounding = 10

    blur {
        enabled = true
        size = 8
        passes = 3
        
        vibrancy = 0.1696
    }

    drop_shadow = true
    shadow_range = 4
    shadow_render_power = 3
    col.shadow = rgba(1a1a1aee)
    dim_inactive = yes
    dim_strength = 0.2
}

animations {
    enabled = true

    # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more

    bezier = myBezier, 0.05, 0.9, 0.1, 1.05

    animation = windows, 1, 4, myBezier
    animation = windowsOut, 1, 7, default, popin 80%
    animation = border, 1, 10, default
    animation = borderangle, 1, 8, default
    animation = fade, 1, 3, default
    animation = workspaces, 1, 4, default,slidefade 20%
}

dwindle {
    # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
    pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
    preserve_split = true # you probably want this
    force_split = 2
}

gestures {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
    workspace_swipe = false
}

misc {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
    force_default_wallpaper = -1 # Set to 0 to disable the anime mascot wallpapers
}

# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
#windowrulev2 = nomaximizerequest, class:.* # You'll probably like this.
windowrulev2 = immediate, class:^(cs2)$
windowrule = center, ^(fontforge)
windowrulev2 = unset, title:^(fontforge)$, class:^(fontforge)$
#windowrulev2 = move cursor,class:REAPER,floating:1
#windowrulev2 = nofocus,class:REAPER,title:^(menu)$
#windowrulev2 = nofocus,class:REAPER,title:^$

# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER

# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Return, exec, $terminal
bind = $mainMod SHIFT, Q, killactive,
bind = $mainMod SHIFT ALT, L, exit,
bind = $mainMod SHIFT, Space, togglefloating,
bind = $mainMod, F, fullscreen
bind = $mainMod SHIFT, F, fullscreen, 2
bind = $mainMod, D, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod ALT, F, exec, firefox
bind = $mainMod ALT, N, exec, nemo
bind = $mainMod SHIFT, R, forcerendererreload
bind = $mainMod SHIFT, R, exec, killall waybar ; waybar
bind = CONTROL ALT, DELETE, exec, hyprctl kill
bind = , PRINT, exec, hyprshot -m region --clipboard-only
bind = SHIFT, PRINT, exec, hyprshot -m region

# Discord PTT fix
#bind = , V, pass, ^discord$

# Move focus with mainMod + arrow/vim keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, down, movefocus, d
bind = $mainMod, up, movefocus, u
bind = $mainMod, right, movefocus, r
bind = $mainMod, H, movefocus, l
bind = $mainMod, J, movefocus, d
bind = $mainMod, K, movefocus, u
bind = $mainMod, L, movefocus, r

# Move window with mainMod + Shift + arrow/vim keys
bind = $mainMod SHIFT, left, movewindow, l
bind = $mainMod SHIFT, down, movewindow, d
bind = $mainMod SHIFT, up, movewindow, u
bind = $mainMod SHIFT, right, movewindow, r
bind = $mainMod SHIFT, H, movewindow, l
bind = $mainMod SHIFT, J, movewindow, d
bind = $mainMod SHIFT, K, movewindow, u
bind = $mainMod SHIFT, L, movewindow, r

# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
bind = $mainMod ALT, 1, workspace, 11
bind = $mainMod ALT, 2, workspace, 12
bind = $mainMod ALT, 3, workspace, 13
bind = $mainMod ALT, 4, workspace, 14
bind = $mainMod ALT, 5, workspace, 15
bind = $mainMod ALT, 6, workspace, 16
bind = $mainMod ALT, 7, workspace, 17
bind = $mainMod ALT, 8, workspace, 18
bind = $mainMod ALT, 9, workspace, 19
bind = $mainMod ALT, 0, workspace, 20
bind = $mainMod, M, workspace, 99

# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
bind = $mainMod SHIFT ALT, 1, movetoworkspacesilent, 11
bind = $mainMod SHIFT ALT, 2, movetoworkspacesilent, 12
bind = $mainMod SHIFT ALT, 3, movetoworkspacesilent, 13
bind = $mainMod SHIFT ALT, 4, movetoworkspacesilent, 14
bind = $mainMod SHIFT ALT, 5, movetoworkspacesilent, 15
bind = $mainMod SHIFT ALT, 6, movetoworkspacesilent, 16
bind = $mainMod SHIFT ALT, 7, movetoworkspacesilent, 17
bind = $mainMod SHIFT ALT, 8, movetoworkspacesilent, 18
bind = $mainMod SHIFT ALT, 9, movetoworkspacesilent, 19
bind = $mainMod SHIFT ALT, 0, movetoworkspacesilent, 20
bind = $mainMod SHIFT, M, movetoworkspacesilent, 99

windowrule = workspace 1, ^(firefox)$
windowrule = workspace 4, ^(lutris)$
windowrule = workspace 5, title:^(Steam)$
windowrule = workspace 13, ^(discord)$
windowrule = workspace 20, title:^(*Spotify*)$
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic

# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1

# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow


Config File: /home/duder963/.config/localdots/hyprland.conf: Read Succeeded
# Nvidia shit
env = LIBVA_DRIVER_NAME,nvidia
env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm
#env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = __GL_GSYNC_ALLOWED,1
env = __GL_VRR_ALLOWED,1
env = MOZ_ENABLE_WAYLAND,1
#env = QT_QPA_PLATFORM,wayland

# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=DP-1, 1920x1080@120,0x0,1,vrr,1
monitor=DP-3, 1920x1080@60,auto-right,1

# Bind workspaces to monitors
workspace=1,monitor:DP-1
workspace=2,monitor:DP-1
workspace=3,monitor:DP-1
workspace=4,monitor:DP-1
workspace=5,monitor:DP-1
workspace=6,monitor:DP-1
workspace=7,monitor:DP-1
workspace=8,monitor:DP-1
workspace=9,monitor:DP-1
workspace=10,monitor:DP-1
workspace=99,monitor:DP-1

workspace=11,monitor:DP-3
workspace=12,monitor:DP-3
workspace=13,monitor:DP-3
workspace=14,monitor:DP-3
workspace=15,monitor:DP-3
workspace=16,monitor:DP-3
workspace=17,monitor:DP-3
workspace=18,monitor:DP-3
workspace=19,monitor:DP-3
workspace=20,monitor:DP-3


exec-once = waybar & lutris & steam & spotify-launcher & flameshot & discord

misc {
    vrr = 1
}

======Config-End========


Description

First Bad Commit: 46ef665 (Moving to other window breaks) Second Bad Commit: 1b54444 (Dragging in same window breaks)

I have been using ShyFox, a CSS config for Firefox which uses an extension for tabs and can hide it in a sidebar that shows upon hovering. In Hyprland 0.41.1, I could drag tabs from the sidebar and the hover aspect would work just fine, allowing me to reposition tabs or move them to another Firefox window. Version 0.41.2 has stopped this behavior, and now when trying to drag an item from the sidebar, the hover aspect breaks and the sidebar immediately hides

However this seems to be the "expected" behavior even on other Linux window managers. The issue is a known bug on Firefox's end, and can be partially resolved by setting a value in Firefox's about:config. With this, the sidebar doesn't close at all while dragging, allowing tabs to be rearranged, but another window's sidebar doesn't open on hover either, so tabs can't be moved between windows.

While bisecting, I noticed this issue appeared in two phases. Commit 46ef665 Caused moving tabs between windows to break, dropping the tab and opening in a new window. This would then break rearranging tabs in any Firefox window. Commit 1b54444 was where dragging stopped working entirely

How to reproduce

  1. Install Firefox
  2. Install the Sidebery extension for Firefox
  3. Install Shyfox (or some other CSS that can hide Firefox's sidebar and show it upon hover)
  4. Open multiple tabs
  5. Attempt to drag a tab in the sidebar window

Crash reports, logs, images, videos

Version 0.41.1

https://github.com/hyprwm/Hyprland/assets/44327643/d900d549-b709-46c1-8127-cee3a67ada04

Commit 46ef665

https://github.com/hyprwm/Hyprland/assets/44327643/a1adc2a6-2229-463d-bab4-7520c6d11936

Commit 1b54444

https://github.com/hyprwm/Hyprland/assets/44327643/03791a3c-a730-4b30-bdbe-388eb76860bc

Duder963 avatar Jun 29 '24 20:06 Duder963