Skip to content

cider-debug side effect breaks macos window focusing behaviour when using java UI components #610

Closed
@RickMoynihan

Description

@RickMoynihan

Expected behavior

$ clj -Sdeps '{:deps {cider/cider-nrepl {:mvn/version "0.21.1"}}}' -m nrepl.cmdline --middleware "[cider.nrepl/wrap-debug]" -i
nREPL server started on port 58662 on host localhost - nrepl://localhost:58662
nREPL 0.6.0
Clojure 1.10.0
Java HotSpot(TM) 64-Bit Server VM 1.8.0_191-b12
Interrupt: Control+C
Exit:      Control+D or (exit) or (quit)
user=> (require 'clojure.inspector)
nil
user=> (clojure.inspector/inspect {:a :b})
#object[javax.swing.JFrame 0x17a01b0c "javax.swing.JFrame[frame0,0,23,400x400,invalid,layout=java.awt.BorderLayout,title=Clojure Inspector,resizable,normal,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,0,22,400x378,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777675,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]"]

Actual behavior

The above runs the clojure inspector SWING UI widget as you'd expect, however the window can't be switched to with cmd-tab. It also does not have any presence in the application menu bar.

Steps to reproduce the problem

Run the above command on macos (I'm using macos Mojave). If you run the above without the cider middleware you will get the expected macos windowing behaviour e.g. this works:

clj
Clojure 1.10.0
user=> (require 'clojure.inspector)
user=> (clojure.inspector/inspect {:a :b})

Environment & Version information

cider-nrepl version

E.g. 0.11.2

Java version

java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

Operating system

  • macos mojave 10.14.3

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions